:root{color-scheme:light;--background:#fff;--foreground:#020817;--primary:#0f172a;--primary-fg:#f8fafc;--secondary:#f1f5f9;--muted:#f1f5f9;--muted-fg:#64748b;--accent:#f1f5f9;--destructive:#ef4444;--border:#e2e8f0;--ring:#020817;--radius:.5rem;--sidebar:#fafafa;--sidebar-fg:#3f3f46;--sidebar-accent:#f4f4f5;--sidebar-accent-fg:#18181b;--sidebar-border:#e5e7eb;--gray-50:#f9fafb;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}[hidden]{display:none!important}*,:before,:after{box-sizing:border-box;border:0 solid var(--border)}html,body{height:100%;margin:0}body{color:var(--foreground);background:var(--background);-webkit-font-smoothing:antialiased;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:16px;line-height:1.5}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}a.link{color:#2563eb}a.link:hover{text-decoration:underline}ul{margin:0;padding:0;list-style:none}svg{flex-shrink:0}.mono{font-family:var(--mono)}.xs{font-size:12px;line-height:16px}.sm{font-size:14px;line-height:20px}.muted{color:var(--muted-fg)}.strong{font-weight:600}.bold{font-weight:700}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.between{justify-content:space-between}.grow{flex:1}.stack>*+*{margin-top:16px}.h2{font-size:24px;font-weight:700;line-height:32px}.warn-text{color:#ea580c}.err-text{color:var(--destructive)}.thumbs{flex-wrap:wrap;gap:6px;display:flex}.thumbs img{object-fit:cover;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);max-width:160px;height:96px;display:block}.ok-text{color:#15803d}.shell{height:100vh;display:flex}.sidebar{background:var(--sidebar);width:16rem;color:var(--sidebar-fg);border-right:1px solid var(--sidebar-border);flex-direction:column;flex-shrink:0;display:flex}.sb-content{flex:1;overflow:auto}.sb-group{flex-direction:column;gap:4px;padding:8px;display:flex}.sb-label{color:#3f3f46b3;align-items:center;height:32px;padding:0 8px;font-size:12px;font-weight:500;display:flex}.sb-button{width:100%;height:32px;font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border-radius:6px;align-items:center;gap:8px;padding:8px;font-size:14px;list-style:none;display:flex}.sb-button::-webkit-details-marker{display:none}.sb-button:hover,.sb-button[data-active]{background:var(--sidebar-accent);color:var(--sidebar-accent-fg)}.sb-button[data-active]{font-weight:500}.sb-chevron{margin-left:auto;transition:transform .2s;display:inline-flex}details[open]>summary .sb-chevron{transform:rotate(90deg)}.sb-sub{border-left:1px solid var(--sidebar-border);flex-direction:column;gap:4px;margin:0 14px;padding:2px 10px;display:flex}.sb-sub-button{border-radius:6px;align-items:center;height:28px;padding:0 8px;font-size:14px;display:flex}.sb-sub-button:hover,.sb-sub-button[data-active]{background:var(--sidebar-accent);color:var(--sidebar-accent-fg)}.sb-sub-button[data-active]{font-weight:500}.sb-footer{padding:8px;position:relative}.sb-user{height:48px}.sb-user-text{flex:1;min-width:0;line-height:1.25;display:grid}.avatar{background:var(--muted);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;display:inline-flex}.dropdown{border:1px solid var(--border);z-index:50;background:#fff;border-radius:8px;min-width:224px;padding:4px;position:absolute;bottom:8px;left:calc(100% - 4px);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.dropdown-label{padding:6px 8px;font-size:14px;font-weight:600}.dropdown-sep{background:var(--border);height:1px;margin:4px -4px}.dropdown-item{width:100%;font:inherit;cursor:pointer;text-align:left;background:0 0;border-radius:4px;align-items:center;gap:8px;padding:6px 8px;font-size:14px;display:flex}.dropdown-item:hover{background:var(--accent)}.inset{flex:1;min-width:0;height:100vh;padding:16px;overflow:auto}.btn{white-space:nowrap;height:40px;font:inherit;background:var(--primary);color:var(--primary-fg);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:500;transition:background-color .15s;display:inline-flex}.btn:hover{background:#0f172ae6}.btn.outline{border:1px solid var(--border);background:var(--background);color:var(--foreground)}.btn.outline:hover,.btn.ghost:hover{background:var(--accent)}.btn.secondary{background:var(--secondary);color:var(--primary)}.btn.secondary:hover{background:#f1f5f9cc}.btn.ghost{color:var(--foreground);background:0 0}.btn.destructive{background:var(--destructive);color:#fff}.btn.destructive:hover{background:#ef4444e6}.btn.sm{height:36px;padding:0 12px}.btn.icon{width:40px;padding:0}.btn.sm.icon{width:36px}.btn.selected{background:var(--primary);color:var(--primary-fg)}.btn:disabled,[aria-busy=true] .btn,.btn[aria-busy=true]{opacity:.5;pointer-events:none}.input{border:1px solid var(--border);background:var(--background);width:100%;height:40px;font:inherit;color:inherit;border-radius:6px;padding:8px 12px;font-size:14px;display:flex}.input::placeholder{color:var(--muted-fg)}.input:focus-visible{outline:2px solid var(--ring);outline-offset:2px}input[type=checkbox],input[type=radio]{width:16px;height:16px;accent-color:var(--primary);margin:0}.check{cursor:pointer;align-items:center;gap:8px;font-size:14px;font-weight:500;display:inline-flex}.label{color:var(--muted-fg);margin-bottom:4px;font-size:12px;display:block}.badge{background:var(--primary);color:var(--primary-fg);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:12px;font-weight:600;line-height:16px;display:inline-flex}.badge svg{width:14px;height:14px}.note-icon{color:#b45309;cursor:pointer;align-items:center;gap:2px;font-size:12px;font-weight:600;display:inline-flex}.note{background:#fffbeb;border-left:2px solid #f59e0b;border-radius:0;margin-top:4px;padding:4px 8px}.note-body{white-space:pre-wrap;word-break:break-word}.note-del{cursor:pointer;color:var(--muted-fg);background:0 0;margin-left:auto;padding:0;display:inline-flex}.card{border:1px solid var(--border);background:#fff;border-radius:8px;box-shadow:0 1px 2px #0000000d}.card-header{padding:16px 16px 8px}.card-content{padding:0 16px 16px}.card-pad{padding:16px}.card-title{font-size:18px;font-weight:600}.filters{background:var(--gray-50);flex-wrap:wrap;align-items:flex-start;gap:12px;padding:8px;display:flex}.table-wrap{width:100%;overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;vertical-align:middle;height:48px;color:var(--muted-fg);border-bottom:1px solid var(--border);white-space:nowrap;padding:0 16px;font-weight:500}td{vertical-align:middle;border-bottom:1px solid var(--border);padding:12px 16px}tbody tr:hover{background:#f1f5f980}tbody tr:last-child td{border-bottom:0}.num{text-align:right;font-variant-numeric:tabular-nums}.empty{text-align:center;color:var(--muted-fg);padding:32px;font-size:14px}dialog{border:1px solid var(--border);color:var(--foreground);background:#fff;border-radius:8px;width:min(512px,100vw - 32px);padding:24px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}dialog::backdrop{background:#000c}.dialog-title{margin-bottom:8px;font-size:18px;font-weight:600;line-height:1}dialog.drawer{border-radius:10px 10px 0 0;flex-direction:column;width:100vw;max-width:none;max-height:96vh;margin:auto 0 0;padding:0;display:flex}dialog.drawer:not([open]){display:none}.drawer-handle{background:var(--muted);border-radius:999px;flex-shrink:0;width:100px;height:8px;margin:16px auto 0}.drawer-header{flex-shrink:0;padding:16px}.drawer-body{border-top:1px solid var(--border);flex:1;min-height:0;padding:8px;overflow-y:auto}.sep{background:var(--border);height:1px;margin:16px 0}#flash{z-index:100;border:1px solid var(--border);background:#fff;border-radius:6px;max-width:420px;padding:16px 24px;font-size:14px;font-weight:600;position:fixed;bottom:16px;right:16px;box-shadow:0 10px 15px -3px #0000001a}#flash.error{background:var(--destructive);border-color:var(--destructive);color:#fff}pre{font:12px/1.5 var(--mono);white-space:pre-wrap;word-break:break-word;color:var(--muted-fg);margin:0}details>summary{cursor:pointer}
