:root{--bg: #0f1115;--panel: #161a21;--panel-2: #1c212a;--border: #262c37;--text: #e6e9ef;--muted: #8b93a3;--accent: #4c8dff;--danger: #ff6b6b;--ok: #3ecf8e;--warn: #f5a524;color-scheme:dark;font-family:system-ui,-apple-system,Pretendard,Apple SD Gothic Neo,Malgun Gothic,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px}button,input,select{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,.mono,pre{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.muted{color:var(--muted)}.small{font-size:12px}.center{text-align:center}.num{text-align:right;white-space:nowrap}.pad{padding:24px 32px}.narrow{max-width:520px}.boot,.login{min-height:100vh;display:grid;place-items:center}.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-card{width:min(360px,calc(100vw - 32px));padding:28px;background:var(--panel);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;gap:14px}.login-card h1{margin:0;font-size:20px}label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}input,select{padding:9px 11px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;min-width:0}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px}input[type=checkbox]{min-width:auto;accent-color:var(--accent)}button{padding:8px 14px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;cursor:pointer}button:hover:not(:disabled){background:#232a35}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover:not(:disabled){filter:brightness(1.1)}button.danger,.danger{color:var(--danger)}button.link{background:none;border:none;padding:2px 4px;color:var(--accent);cursor:pointer}button.link:hover{text-decoration:underline;background:none}.stack{display:flex;flex-direction:column;gap:12px;max-width:360px}.row-form{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.error{color:var(--danger);margin:0}.success{color:var(--ok);margin:0}.banner{padding:10px 12px;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.35);border-radius:8px;margin-bottom:12px;cursor:pointer}.notice{margin:0;color:var(--warn)}.notice.banner{background:#f5a5241a;border-color:#f5a52459;cursor:default}.shell{display:grid;grid-template-columns:264px 1fr;min-height:100vh}.sidebar{background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 12px;gap:16px}.brand a{color:var(--text);font-weight:700;font-size:15px;padding:0 8px}.roots{flex:1;overflow-y:auto}.roots h2{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 8px 8px}.sole-root .root-label{display:flex;align-items:center;gap:8px}.sole-root .dot{margin-top:0}.root-link{display:flex;gap:8px;padding:9px 8px;border-radius:8px;color:var(--text);margin-bottom:2px}.root-link:hover{background:var(--panel-2);text-decoration:none}.root-link.active{background:var(--panel-2);box-shadow:inset 2px 0 0 var(--accent)}.root-body{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.root-label{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.root-meta{font-size:11px;color:var(--muted)}.dot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex:none;display:inline-block}.dot.online{background:var(--ok)}.dot.offline{background:#4a5262}.quota-track{display:block;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.quota-fill{display:block;height:100%;background:var(--accent);transition:width .2s}.quota-fill.working{width:40%;background:var(--accent);animation:working 1.2s ease-in-out infinite}@keyframes working{0%{transform:translate(-100%)}to{transform:translate(250%)}}.quota-fill.ok{background:var(--ok)}.quota-fill.warn{background:var(--warn)}.quota-fill.full{background:var(--danger)}.sidebar-footer{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--border);padding-top:12px}.nav-item{padding:8px;border-radius:8px;color:var(--muted);text-align:left}.nav-item:hover{background:var(--panel-2);color:var(--text);text-decoration:none}.nav-item.active{color:var(--text)}.as-button{background:none;border:none;cursor:pointer}.content{min-width:0;overflow-x:auto}.browser{padding:20px 24px 96px;position:relative;min-height:100vh}.browser-header{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:2px;font-size:15px}.crumbs .sep{color:var(--muted);margin:0 2px}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.toolbar .search{display:flex;align-items:center;gap:4px}.toolbar .search input{width:180px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:center;z-index:40;padding:16px}.modal{width:min(460px,100%);padding:24px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 20px 48px #00000080}.modal h2{margin:0 0 12px;font-size:16px}.conflict-name{padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:8px;margin:0 0 16px;font-size:13px;word-break:break-all}.modal-actions{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 12px}.modal-footer{margin-top:16px;padding-top:12px;border-top:1px solid var(--border);text-align:right}label.inline{flex-direction:row;align-items:center;gap:8px}.badge{padding:4px 9px;border:1px solid var(--border);border-radius:999px;font-size:12px;color:var(--muted)}.entries{width:100%;border-collapse:collapse}.entries th{text-align:left;font-size:12px;color:var(--muted);font-weight:500;padding:8px;border-bottom:1px solid var(--border)}.entries th.num{text-align:right}.sort-header{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:2px}.entries th.num .sort-header{flex-direction:row-reverse}.sort-header:hover{color:var(--text)}.sort-mark{opacity:0}.sort-mark.on,.sort-header:hover .sort-mark{opacity:1}.entries td{padding:8px;border-bottom:1px solid var(--border);vertical-align:middle}.entries tr:hover td{background:var(--panel)}.entries tr.selected td{background:#4c8dff1f}.entries tr.drop-target td{background:#4c8dff2e;box-shadow:inset 0 2px 0 var(--accent),inset 0 -2px 0 var(--accent)}.entries tr.drop-target td:first-child{box-shadow:inset 2px 0 0 var(--accent),inset 0 2px 0 var(--accent),inset 0 -2px 0 var(--accent)}.entries tr.drop-target td:last-child{box-shadow:inset -2px 0 0 var(--accent),inset 0 2px 0 var(--accent),inset 0 -2px 0 var(--accent)}.content>.banner{margin:16px 24px 0}.root-link.drop-target{background:#4c8dff2e;box-shadow:inset 0 0 0 2px var(--accent)}.crumb.drop-target{background:#4c8dff2e;outline:2px solid var(--accent);border-radius:6px}.banner.undoable{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text);background:#4c8dff1a;border-color:#4c8dff59;cursor:default}.entries tr.failed td{color:var(--danger)}.entries .check{width:36px}.entries .actions{text-align:right;white-space:nowrap}.row-menu-button{background:none;border:none;color:var(--muted);cursor:pointer;padding:2px 8px;border-radius:6px;font-size:16px;line-height:1}.entries tr:hover .row-menu-button,.row-menu-button:hover,.row-menu-button:focus-visible,.row-menu-button[aria-expanded=true]{color:var(--text);background:var(--panel-2)}.row-menu{position:fixed;z-index:30;min-width:160px;padding:6px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 32px #00000080;display:flex;flex-direction:column}.row-menu button{background:none;border:none;color:var(--text);text-align:left;padding:8px 10px;border-radius:6px;cursor:pointer;white-space:nowrap}.row-menu button:hover,.row-menu button:focus-visible{background:var(--panel-2)}.entry-name{background:none;border:none;padding:0;display:flex;align-items:center;gap:8px;cursor:pointer;text-align:left}.entry-name.editing{display:flex;align-items:center;gap:8px}.entry-name.editing input{flex:1;min-width:0;padding:3px 6px;background:var(--bg);border:1px solid var(--accent);border-radius:6px;outline:none}.entry-name:hover{background:none;text-decoration:underline}.tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.tile{position:relative;display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid transparent;border-radius:10px;background:var(--panel)}.tile:hover{border-color:var(--border)}.tile.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel))}.tile.drop-target{border-color:var(--accent);border-style:dashed}.tile-face{display:grid;place-items:center;aspect-ratio:1;width:100%;padding:0;border:none;border-radius:8px;background:var(--bg);cursor:pointer;overflow:hidden}.tile-thumb{width:100%;height:100%;object-fit:cover;display:block}.tile-name{font-size:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.tile-check{position:absolute;top:14px;left:14px;z-index:1}.tile-menu{position:absolute;top:10px;right:10px;z-index:1}.thumb{flex:none;width:20px;height:20px;object-fit:cover;border-radius:3px;background:var(--border)}.icon{flex:none;display:block}.drop-overlay{position:fixed;top:0;right:0;bottom:0;left:264px;background:#4c8dff1f;border:2px dashed var(--accent);display:grid;place-items:center;font-size:18px;font-weight:600;pointer-events:none;z-index:20}.uploads{position:fixed;right:20px;bottom:20px;width:min(380px,calc(100vw - 40px));max-height:50vh;overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px #00000073;z-index:30}.uploads header{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--panel)}.uploads header .muted{margin-left:auto}.uploads ul{list-style:none;margin:0;padding:8px 12px}.upload-item{padding:6px 0}.upload-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}.upload-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.card{padding:16px;background:var(--panel);border:1px solid var(--border);border-radius:12px;color:var(--text)}.card:hover{border-color:var(--accent);text-decoration:none}.card-title{display:flex;align-items:center;gap:8px;font-weight:600;margin-bottom:12px}.card dl,.facts{margin:0;display:flex;flex-direction:column;gap:6px}.card dl>div,.facts>div{display:flex;justify-content:space-between;gap:12px;font-size:13px}.card dt,.facts dt{color:var(--muted)}.card dd,.facts dd{margin:0}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:20px}.tabs a{padding:9px 14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs a:hover{color:var(--text);text-decoration:none}.tabs a.active{color:var(--text);border-bottom-color:var(--accent)}.callout{padding:16px;background:var(--panel);border:1px solid var(--accent);border-radius:12px;margin-bottom:16px}.callout-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.callout pre{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px;overflow-x:auto;font-size:12px;white-space:pre}h1{font-size:20px;margin:0 0 16px}h2{font-size:16px;margin:24px 0 12px}.topbar,.drawer-backdrop{display:none}@media(max-width:860px){.shell{grid-template-columns:1fr;padding-top:52px}.topbar{position:fixed;top:0;left:0;right:0;height:52px;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--panel);border-bottom:1px solid var(--border);z-index:35}.drawer-toggle{padding:6px 10px;font-size:18px;line-height:1}.brand-link{color:var(--text);font-weight:700}.sidebar{position:fixed;top:0;bottom:0;left:0;width:min(280px,84vw);border-right:1px solid var(--border);transform:translate(-100%);transition:transform .2s ease;z-index:45;overflow-y:auto}.sidebar.open{transform:translate(0)}.drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:40}.browser,.pad{padding:16px 12px 96px}.entries th,.entries td{padding:10px 6px}.entries .check{width:30px}.entries th:nth-child(4),.entries td:nth-child(4){display:none}.toolbar button{flex:1 1 auto;min-width:96px}.drop-overlay{top:52px;right:0;bottom:0;left:0}.uploads{right:8px;left:8px;bottom:8px;width:auto}.modal{width:100%}.stack{max-width:none}.row-form>*{flex:1 1 160px}}@media(max-width:560px){.entries th:nth-child(3),.entries td:nth-child(3){display:none}}
