.login{position:relative;display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh;min-height:100dvh}.login-toolbar{position:absolute;top:var(--sp-4);right:var(--sp-4);z-index:2}.login-aside{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:var(--sp-6);padding:clamp(var(--sp-5),6vw,72px);color:#eaf6f7;background:radial-gradient(120% 90% at 12% 8%,rgba(55,192,198,.28),transparent 60%),radial-gradient(90% 80% at 92% 100%,rgba(13,122,131,.4),transparent 55%),linear-gradient(160deg,#0a2a2e,#06171b 70%);overflow:hidden}.login-aside:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:28px 28px;mask-image:radial-gradient(120% 100% at 20% 10%,#000 30%,transparent 80%);pointer-events:none}.login-aside-inner{position:relative;max-width:460px}.login-aside .brand-text{color:#fff}.login-aside .brand-accent{color:var(--accent)}.login-lede{margin-top:var(--sp-6);font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:700;line-height:1.1;letter-spacing:-.025em;color:#fff}.login-sub{margin-top:var(--sp-4);font-size:var(--fs-md);line-height:1.55;color:#eaf6f7b8}.login-points{margin-top:var(--sp-6);padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--sp-3)}.login-points li{display:flex;align-items:flex-start;gap:var(--sp-3);font-size:var(--fs-small);color:#eaf6f7db}.login-points svg{flex:none;width:18px;height:18px;margin-top:1px;color:var(--accent)}.login-foot{position:relative;font-size:var(--fs-micro);letter-spacing:.04em;color:#eaf6f773}.login-main{display:flex;align-items:center;justify-content:center;padding:var(--sp-5);background:var(--bg)}.login-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:var(--sp-4)}.login-card-head{margin-bottom:var(--sp-1)}.login-card-title{margin-top:4px;font-size:var(--fs-xl);font-weight:700;letter-spacing:-.02em}.login-card-sub{margin-top:2px;font-size:var(--fs-small)}.login-form{display:flex;flex-direction:column;gap:var(--sp-4)}.login-submit{height:40px;margin-top:var(--sp-1)}.login-skeleton{display:flex;flex-direction:column;gap:var(--sp-3)}.input-affix{position:relative;display:flex;align-items:center}.input-affix .input{padding-right:40px}.affix-btn{position:absolute;right:6px;display:grid;place-items:center;width:28px;height:28px;border:0;background:transparent;color:var(--muted);border-radius:var(--r-sm);cursor:pointer}.affix-btn:hover{color:var(--ink);background:var(--surface-2)}.login-divider{display:flex;align-items:center;gap:var(--sp-3);color:var(--faint);font-size:var(--fs-micro);letter-spacing:.04em;text-transform:uppercase}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--line)}.oauth-list{display:flex;flex-direction:column;gap:var(--sp-2)}.oauth-btn{height:40px;justify-content:flex-start;gap:var(--sp-3);text-decoration:none;font-weight:550}.oauth-btn:hover{text-decoration:none}.oauth-badge{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--accent-weak);color:var(--accent-ink);font-size:var(--fs-small);font-weight:700}@media (max-width: 860px){.login{grid-template-columns:1fr}.login-aside{display:none}}.browser{display:flex;flex-direction:column;height:100%;min-height:0}.browser-head{flex:none;padding:var(--sp-4) var(--sp-5) var(--sp-3);border-bottom:1px solid var(--line);background:var(--surface)}.browser-head-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3)}.browser-head-tools{display:flex;align-items:center;gap:var(--sp-2);flex:none}.crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:2px;min-width:0}.crumb-part{display:inline-flex;align-items:center}.crumb{display:inline-flex;align-items:center;gap:5px;max-width:220px;padding:4px 8px;border-radius:var(--r-sm);color:var(--muted);font-size:var(--fs-body);font-weight:550;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumb-btn{border:0;background:transparent;cursor:pointer;font-family:inherit}a.crumb:hover,.crumb-btn:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}.crumb-current{color:var(--ink);font-weight:650}.crumb-sep{color:var(--faint);display:inline-flex}.crumb-ellipsis{padding:0 4px;color:var(--faint)}.toolbar{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.toolbar-spacer{flex:1}.toolbar-sel{padding:3px;border-radius:var(--r-md);background:var(--accent-weak);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line))}.toolbar-sel .btn{background:var(--surface)}.toolbar-selcount{font-size:var(--fs-small);font-weight:600;color:var(--accent-ink);padding:0 var(--sp-1)}.browser-area{position:relative;flex:1;min-height:0;overflow:auto;padding:var(--sp-3) var(--sp-4) var(--sp-5)}.browser-area:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--accent-weak)}.browser-area.drag-active{outline:2px dashed var(--accent);outline-offset:-8px}.filelist{display:flex;flex-direction:column;min-width:560px}.filelist-head,.filerow{display:grid;grid-template-columns:34px minmax(200px,2.4fr) 110px 96px 150px 40px;align-items:center;gap:var(--sp-2)}.filelist.no-access-col .filelist-head,.filelist.no-access-col .filerow{grid-template-columns:34px minmax(200px,2.4fr) 96px 150px 40px}.filelist.no-access-col{min-width:460px}.filelist-head{position:sticky;top:calc(-1 * var(--sp-3));z-index:1;padding:var(--sp-2) var(--sp-2);background:var(--bg);border-bottom:1px solid var(--line)}.col-head{display:inline-flex;align-items:center;gap:4px;padding:2px 4px;border:0;background:transparent;border-radius:var(--r-sm);font-size:var(--fs-micro);font-weight:600;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted);cursor:pointer}.col-head:hover{color:var(--ink)}.col-head.active{color:var(--accent-ink)}.col-head.col-right{justify-content:flex-end}.col-static{font-size:var(--fs-micro);font-weight:600;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted);padding:2px 4px}.filelist-body{display:flex;flex-direction:column}.filerow{padding:0 var(--sp-2);height:var(--row-h);border-radius:var(--r-md);cursor:default;user-select:none;border:1px solid transparent}.filerow:hover{background:var(--surface-2)}.filerow.selected{background:var(--accent-weak)}.filerow.selected:hover{background:var(--accent-weak-2)}.filerow.drop-target{background:var(--accent-weak);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.filerow.skel-row{cursor:default}.filerow.skel-row:hover{background:transparent}.cell-check{display:flex;align-items:center;justify-content:center}.cell-check input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}.cell-name{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.fname{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-body);color:var(--ink)}.fname-badge{display:inline-flex;color:var(--accent);flex:none}.cell-access{min-width:0}.cell-size{text-align:right;font-size:var(--fs-small);color:var(--ink-2)}.cell-modified{font-size:var(--fs-small);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-actions{display:flex;align-items:center;justify-content:center}.row-actions-btn{opacity:0}.filerow:hover .row-actions-btn,.filerow.selected .row-actions-btn{opacity:1}.ftype{display:grid;place-items:center;width:26px;height:26px;flex:none;border-radius:7px;background:var(--bg-sink);color:var(--muted)}.ftype svg{width:17px;height:17px}.ftype-folder{color:var(--accent);background:var(--accent-weak)}.ftype-lg{width:46px;height:46px;border-radius:11px}.ftype-lg svg{width:26px;height:26px}.access-chip{display:inline-flex;align-items:center;height:19px;padding:0 7px;border-radius:var(--r-sm);background:var(--bg-sink);color:var(--muted);font-size:var(--fs-micro);font-weight:600;letter-spacing:.01em}.filetiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--sp-3);padding-top:var(--sp-2)}.tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);cursor:default;user-select:none;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.tile:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm)}.tile.selected{border-color:var(--accent);background:var(--accent-weak)}.tile.drop-target{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}.tile-top{display:flex;align-items:flex-start;justify-content:space-between;width:100%;margin-bottom:var(--sp-2)}.tile-name{width:100%;font-size:var(--fs-small);font-weight:550;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-meta{font-size:var(--fs-micro);color:var(--muted)}.dropzone-overlay{position:absolute;inset:var(--sp-3);z-index:3;display:grid;place-items:center;border-radius:var(--r-lg);background:color-mix(in srgb,var(--accent-weak) 82%,transparent);backdrop-filter:blur(1px);pointer-events:none}.dropzone-inner{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-7);border:2px dashed var(--accent);border-radius:var(--r-lg);color:var(--accent-ink);background:var(--surface)}.dropzone-inner svg{width:32px;height:32px}.dropzone-title{font-size:var(--fs-md);font-weight:650}.dropzone-path{font-size:var(--fs-small);color:var(--muted)}.browser-foot{flex:none;display:flex;align-items:center;justify-content:space-between;height:36px;padding:0 var(--sp-5);border-top:1px solid var(--line);background:var(--surface)}.foot-count{font-size:var(--fs-small);color:var(--muted)}.pager{display:flex;align-items:center;gap:var(--sp-1)}.pager-label{font-size:var(--fs-small);color:var(--muted);min-width:48px;text-align:center}.picker{display:flex;flex-direction:column;gap:var(--sp-3)}.picker-bar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md)}.picker-path{font-size:var(--fs-small);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-list{min-height:200px;max-height:320px;border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-1)}.picker-loading,.picker-empty{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);height:180px;font-size:var(--fs-small)}.picker-row{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2);border:0;background:transparent;border-radius:var(--r-sm);text-align:left;cursor:pointer}.picker-row:hover:not(:disabled){background:var(--surface-2)}.picker-row:disabled{opacity:.55;cursor:not-allowed}.picker-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-small)}.picker-row svg{color:var(--faint)}.picker-status{font-size:var(--fs-small)}.uploads{position:fixed;z-index:90;right:var(--sp-4);bottom:var(--sp-4);width:min(380px,calc(100vw - 2 * var(--sp-4)));background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden}.uploads-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-3);border-bottom:1px solid var(--line);background:var(--surface-2)}.uploads-toggle{flex:1;display:flex;align-items:center;gap:var(--sp-2);border:0;background:transparent;cursor:pointer;text-align:left;color:var(--ink)}.uploads-title{flex:1;font-size:var(--fs-small);font-weight:600}.uploads-head-icon.ok{color:var(--ok)}.uploads-head-icon.fail{color:var(--danger)}.uploads-list{list-style:none;margin:0;padding:var(--sp-1);max-height:300px;overflow-y:auto}.upload-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);border-radius:var(--r-sm)}.upload-item:hover{background:var(--surface-2)}.upload-icon{display:grid;place-items:center;width:26px;height:26px;flex:none;border-radius:7px;background:var(--bg-sink);color:var(--muted)}.upload-item.is-done .upload-icon{background:var(--ok-weak);color:var(--ok)}.upload-item.is-error .upload-icon{background:var(--danger-weak);color:var(--danger)}.upload-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.upload-line{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2)}.upload-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-small);color:var(--ink)}.upload-size{flex:none;font-size:var(--fs-micro);color:var(--muted)}.upload-track{height:4px;border-radius:var(--r-pill);background:var(--bg-sink);overflow:hidden}.upload-fill{height:100%;border-radius:var(--r-pill);background:var(--accent);transition:width .14s linear}.upload-status{font-size:var(--fs-micro);color:var(--muted)}.upload-status.err{color:var(--danger)}.upload-actions{flex:none;display:flex;gap:2px}@media (max-width: 640px){.browser-head{padding:var(--sp-3)}.browser-area{padding:var(--sp-2) var(--sp-2) var(--sp-5)}.filelist,.filelist.no-access-col{min-width:0}.filelist-head{display:none}.filerow,.filelist.no-access-col .filerow{grid-template-columns:30px minmax(0,1fr) auto 34px;height:auto;padding:var(--sp-2)}.cell-access,.cell-modified{display:none}}.share-target{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);margin-bottom:var(--sp-4);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md)}.share-target-text{min-width:0}.share-target-name{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-target-path{display:block;font-size:var(--fs-micro);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-form{display:flex;flex-direction:column;gap:var(--sp-4)}.share-hr{margin:var(--sp-5) 0 var(--sp-4)}.share-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.share-toggles{display:flex;flex-direction:column;gap:var(--sp-2)}.toggle-card{position:relative;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--line-strong);border-radius:var(--r-md);cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.toggle-card.on{border-color:color-mix(in srgb,var(--accent) 45%,var(--line-strong));background:var(--accent-weak)}.toggle-card input{position:absolute;opacity:0;pointer-events:none}.toggle-icon{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:var(--r-md);background:var(--bg-sink);color:var(--muted)}.toggle-card.on .toggle-icon{background:var(--surface);color:var(--accent)}.toggle-text{flex:1;min-width:0;display:flex;flex-direction:column}.toggle-label{font-weight:600;font-size:var(--fs-small)}.toggle-desc{font-size:var(--fs-micro);color:var(--muted)}.toggle-switch{flex:none;position:relative;width:38px;height:22px;border-radius:var(--r-pill);background:var(--line-strong);transition:background var(--dur-fast) var(--ease)}.toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-sm);transition:transform var(--dur-fast) var(--ease)}.toggle-card.on .toggle-switch{background:var(--accent)}.toggle-card.on .toggle-switch:after{transform:translate(16px)}.reveal{display:flex;flex-direction:column;gap:var(--sp-4)}.reveal-warn{font-size:var(--fs-small)}.reveal-url{display:flex;align-items:stretch;gap:var(--sp-2)}.reveal-url-text{flex:1;min-width:0;display:flex;align-items:center;padding:var(--sp-3);border:1px solid var(--accent);border-radius:var(--r-md);background:var(--surface-2);font-size:var(--fs-small);word-break:break-all;overflow-wrap:anywhere;box-shadow:0 0 0 3px var(--accent-weak)}.reveal-copy{flex:none;height:auto;padding:0 var(--sp-4)}.reveal-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-3);margin:0;padding:var(--sp-4);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md)}.reveal-fact dd{margin:3px 0 0;font-size:var(--fs-small);font-weight:550;color:var(--ink)}.share-existing{display:flex;flex-direction:column;gap:var(--sp-3)}.share-existing-empty{font-size:var(--fs-small);padding:var(--sp-2) 0}.link-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.link-row{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.link-row.dead{background:var(--surface-2)}.link-status{display:grid;place-items:center;width:30px;height:30px;flex:none;border-radius:var(--r-md)}.link-status.on{background:var(--accent-weak);color:var(--accent-ink)}.link-status.off{background:var(--bg-sink);color:var(--faint)}.link-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.link-badges{display:flex;flex-wrap:wrap;gap:5px}.link-meta{font-size:var(--fs-micro);color:var(--muted)}.link-note{font-size:var(--fs-small);color:var(--ink-2)}.link-actions{display:flex;align-items:center;gap:var(--sp-1);flex:none}.mine-summary{font-size:var(--fs-small);margin-bottom:var(--sp-3)}.mine-list{max-width:860px}.mine-path{font-size:var(--fs-small);font-weight:600;color:var(--ink)}.mine-path:hover{color:var(--accent-ink)}.mine-path .bidi-isolate{overflow-wrap:anywhere}@media (max-width: 560px){.share-grid,.reveal-facts{grid-template-columns:1fr}.reveal-url{flex-direction:column}}.add-grant{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4);margin-bottom:var(--sp-5);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md)}.add-grant-row{display:flex;gap:var(--sp-2);align-items:stretch}.access-options{display:grid;gap:var(--sp-1);margin:0;padding:0;border:0}.access-options>.label{margin-bottom:var(--sp-1)}.access-option{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);cursor:pointer}.access-option:hover{border-color:var(--line-strong)}.access-option.is-selected{border-color:var(--accent);background:var(--accent-weak)}.access-option input{margin-top:.2em;flex:none}.access-option-text{display:flex;flex-direction:column;gap:2px}.access-option-name{display:flex;align-items:center;gap:var(--sp-2);font-weight:600;font-size:var(--fs-body)}.access-option-desc{font-size:var(--fs-small);color:var(--muted);line-height:1.4}.access-option-dropbox .access-option-name{color:var(--accent-ink)}.access-option-tag{font-size:var(--fs-micro);font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:1px var(--sp-2);border-radius:var(--r-pill);background:var(--accent-weak);color:var(--accent-ink);border:1px solid var(--accent)}.add-grant-opts{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.add-grant-expiry{display:flex;flex-direction:column;gap:var(--sp-1)}.add-grant-expiry .input{width:220px}.subj-search{position:relative;flex:1;min-width:0}.subj-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.subj-input{padding-left:34px}.subj-pop{position:absolute;z-index:5;top:calc(100% + 4px);left:0;right:0;max-height:260px;overflow-y:auto;padding:var(--sp-1);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--shadow-md)}.subj-pop-msg{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3);font-size:var(--fs-small)}.subj-opt{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2);border:0;background:transparent;border-radius:var(--r-sm);text-align:left;cursor:pointer}.subj-opt.active{background:var(--accent-weak)}.subj-opt-text{flex:1;min-width:0;display:flex;flex-direction:column}.subj-opt-name{font-size:var(--fs-small);font-weight:550;color:var(--ink)}.subj-opt-sec{font-size:var(--fs-micro)}.subj-opt-type{flex:none}.subj-chosen{display:flex;align-items:center;gap:var(--sp-2);flex:1;min-width:0;padding:5px var(--sp-2) 5px 5px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface)}.subj-chosen-text{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}.subj-chosen-name{font-size:var(--fs-small);font-weight:600}.subj-chosen-sec{font-size:var(--fs-micro)}.subj-icon{display:grid;place-items:center;width:30px;height:30px;flex:none;border-radius:50%;background:var(--bg-sink);color:var(--muted)}.subj-user{color:var(--accent-ink);background:var(--accent-weak)}.subj-team{color:var(--accent-ink);background:var(--accent-weak-2)}.subj-group{color:var(--warn);background:var(--warn-weak)}.subj-authenticated{color:var(--ink-2)}.perm-section{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-5)}.perm-empty{font-size:var(--fs-small);padding:var(--sp-2) 0}.perm-inherit-note{font-size:var(--fs-small)}.grant-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.grant-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.grant-row.inherited{background:var(--surface-2)}.grant-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.grant-name{font-size:var(--fs-small);font-weight:600}.grant-sub{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.grant-source{font-size:var(--fs-micro);color:var(--muted)}.grant-locked{display:grid;place-items:center;width:28px;height:28px;flex:none;color:var(--faint)}.access-chip{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:var(--r-sm);background:var(--bg-sink);color:var(--ink-2);font-size:var(--fs-micro);font-weight:600;letter-spacing:.02em}.access-chip-strong{background:var(--accent-weak);color:var(--accent-ink)}@media (max-width: 560px){.add-grant-row{flex-wrap:wrap}.add-grant-expiry .input{width:100%}}.preview-frame{width:100%;height:min(72vh,900px);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-sink)}.preview-media{display:flex;align-items:center;justify-content:center;min-height:200px;max-height:72vh;background:var(--bg-sink);border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}.preview-image{max-width:100%;max-height:70vh;object-fit:contain}.preview-video{width:100%;max-height:70vh}.preview-audio-wrap{flex-direction:column;gap:var(--sp-4);padding:var(--sp-6);color:var(--muted)}.preview-audio{width:100%;max-width:480px}.preview-text{max-height:68vh;overflow:auto;padding:var(--sp-4);background:var(--bg-sink);border:1px solid var(--line);border-radius:var(--r-sm);font-size:var(--fs-micro);line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.preview-table-wrap{max-height:68vh;overflow:auto;border:1px solid var(--line);border-radius:var(--r-sm)}.preview-table{border-collapse:collapse;width:100%;font-size:var(--fs-micro)}.preview-table td{border:1px solid var(--line);padding:4px 8px;white-space:nowrap;max-width:320px;overflow:hidden;text-overflow:ellipsis}.preview-table tr:first-child td{font-weight:600;background:var(--surface-2);position:sticky;top:0}.preview-sheet-tabs{display:flex;gap:var(--sp-1);padding:var(--sp-2);border-bottom:1px solid var(--line);overflow-x:auto;position:sticky;top:0;background:var(--surface);z-index:1}.preview-truncated{padding:var(--sp-2) var(--sp-3);margin:0;font-size:var(--fs-micro)}.preview-doc{max-height:68vh;overflow:auto;padding:var(--sp-5);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);line-height:1.6;contain:content}.preview-doc img{max-width:100%}.preview-doc table{border-collapse:collapse}.preview-doc td,.preview-doc th{border:1px solid var(--line);padding:4px 8px}.preview-notice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);min-height:180px;text-align:center}.preview-meta{margin-right:auto;font-size:var(--fs-micro)}.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-3);list-style:none;margin:0;padding:0}.team-card{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}.team-card-head{display:flex;align-items:center;gap:var(--sp-3);min-width:0}.team-avatar{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:var(--r-md);background:var(--accent-weak);color:var(--accent)}.team-card-title{display:flex;flex-direction:column;min-width:0}.team-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-count{font-size:var(--fs-small)}.team-card-desc{margin:0;font-size:var(--fs-small);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.team-card-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-top:auto;padding-top:var(--sp-3);border-top:1px solid var(--line)}.team-nofolder{font-size:var(--fs-small)}.team-desc{margin:0 0 var(--sp-4)}.team-folders{display:flex;flex-direction:column;gap:var(--sp-1);list-style:none;margin:0;padding:0}.team-folder{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md)}.team-folder-main{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.team-folder-path{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-add{margin-bottom:var(--sp-3)}.team-add .add-grant-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--sp-2);align-items:center}.team-add .team-role-select{width:auto;min-width:130px}.team-add .btn{white-space:nowrap}.teams-admin{display:flex;flex-direction:column;gap:var(--sp-5)}.team-create{padding-bottom:var(--sp-4);border-bottom:1px solid var(--line)}@media (max-width: 560px){.team-add .add-grant-row{grid-template-columns:minmax(0,1fr) auto}.team-add .subj-search,.team-add .subj-chosen{grid-column:1 / -1}}.trash-summary{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-3);font-size:var(--fs-small)}.trash-summary-flag{display:inline-flex;align-items:center;gap:6px;color:var(--danger);font-weight:600}.trash-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.trash-row{display:grid;grid-template-columns:auto 1fr auto;gap:var(--sp-3);align-items:start;padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}.trash-row.via-link{border-color:color-mix(in srgb,var(--danger) 45%,var(--line));background:color-mix(in srgb,var(--danger-weak) 40%,var(--surface));box-shadow:inset 3px 0 0 var(--danger)}.trash-main{min-width:0}.trash-name-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.trash-name{flex:0 1 auto;min-width:0;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trash-via{flex:none}.trash-path{display:block;margin-top:2px;font-size:var(--fs-micro);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trash-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px;font-size:var(--fs-small);color:var(--muted)}.trash-meta .dot{color:var(--faint)}.trash-actor{font-weight:600;color:var(--ink-2)}.trash-aside{display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-2);text-align:right}.trash-life{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-small);color:var(--muted);white-space:nowrap}.trash-life.urgent{color:var(--warn);font-weight:600}.trash-actions{display:flex;gap:var(--sp-2)}.trash-pager{display:flex;align-items:center;justify-content:center;gap:var(--sp-4);margin-top:var(--sp-4)}@media (max-width: 640px){.trash-row{grid-template-columns:auto 1fr}.trash-aside{grid-column:1 / -1;flex-direction:row;align-items:center;justify-content:space-between;text-align:left;margin-top:var(--sp-1)}}.admin-tabs{padding:0 var(--sp-5);background:var(--surface);border-bottom:1px solid var(--line)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.dtable{width:100%;border-collapse:collapse;font-size:var(--fs-small)}.dtable thead th{position:sticky;top:0;z-index:1;padding:var(--sp-2) var(--sp-3);text-align:left;font-size:var(--fs-micro);font-weight:600;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap}.dtable tbody td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--line);vertical-align:middle}.dtable tbody tr:last-child td{border-bottom:0}.dtable tbody tr:hover{background:var(--surface-2)}.nowrap{white-space:nowrap}.table-empty{padding:var(--sp-6);text-align:center}.table-foot{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-1);font-size:var(--fs-small)}.event-chip{display:inline-flex;align-items:center;height:20px;padding:0 7px;margin:1px 2px 1px 0;border-radius:var(--r-sm);background:var(--bg-sink);color:var(--ink-2);font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:500;white-space:nowrap}.audit{display:flex;flex-direction:column;gap:var(--sp-4)}.verify-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4);border:1px solid var(--line);border-radius:var(--r-md);background:linear-gradient(180deg,var(--surface),var(--surface-2))}.verify-text{display:flex;flex-direction:column;gap:3px}.verify-title{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-md);font-weight:650;color:var(--ink)}.verify-title svg{color:var(--accent)}.verify-sub{font-size:var(--fs-small);max-width:60ch}.verify-result{font-size:var(--fs-small)}.audit-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3);align-items:end;padding:var(--sp-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.audit-filter-path{grid-column:span 2}.audit-filter-actions{display:flex;gap:var(--sp-2);grid-column:span 2}.col-seq{width:64px;color:var(--muted)}.col-path{max-width:240px}.col-path .bidi-isolate{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-ref{display:inline-block;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;font-size:var(--fs-micro)}.user-cell{display:flex;flex-direction:column;line-height:1.3}.user-cell-name{font-weight:600;color:var(--ink)}.user-cell-sub{font-size:var(--fs-micro)}.col-roles{white-space:nowrap}.col-actions-h{text-align:right}.row-actions{display:flex;gap:var(--sp-2);justify-content:flex-end}.invite{display:flex;flex-direction:column;gap:var(--sp-4);max-width:720px}.invite-note{font-size:var(--fs-small)}.invite-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.invite-actions{display:flex;justify-content:flex-end}@media (max-width: 720px){.audit-filters{grid-template-columns:1fr 1fr}.audit-filter-path,.audit-filter-actions{grid-column:span 2}.invite-grid{grid-template-columns:1fr}}.storage-settings{display:flex;flex-direction:column;gap:var(--sp-4);max-width:720px}.storage-facts{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}.storage-fact{display:flex;align-items:baseline;gap:var(--sp-3);flex-wrap:wrap}.storage-fact .eyebrow{min-width:160px}.storage-fact-value{overflow-wrap:anywhere}.storage-actions{display:flex;gap:var(--sp-3)}.providers{display:flex;flex-direction:column;gap:var(--sp-4)}.providers-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4)}.providers-head .notice{flex:1}.provider-test{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-micro);margin-top:2px}.provider-test.ok{color:var(--ok)}.provider-test.fail{color:var(--danger)}.provider-form{display:flex;flex-direction:column;gap:var(--sp-4)}.provider-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3) var(--sp-4)}.provider-span{grid-column:1 / -1}.field-checkbox{align-self:end}.checkbox-label{display:inline-flex;align-items:center;gap:var(--sp-2);cursor:pointer;font-size:var(--fs-sm, .9rem)}@media (max-width: 720px){.provider-grid{grid-template-columns:1fr}.providers-head{flex-direction:column}}.usage{display:flex;flex-direction:column;gap:var(--sp-5)}.usage-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.usage-stale{margin-left:var(--sp-2)}.usage-drive{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}.usage-drive-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.usage-root{overflow-wrap:anywhere}.usage-bar{height:10px;border-radius:var(--r-pill);background:var(--bg-sink);border:1px solid var(--line);overflow:hidden}.usage-bar-fill{height:100%;background:var(--accent);transition:width .2s ease}.usage-bar-fill.warn{background:var(--warn)}.usage-bar-fill.critical{background:var(--danger)}.usage-drive-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3)}.usage-stat{display:flex;flex-direction:column;gap:2px}.usage-stat-value{font-size:var(--fs-lg);font-weight:600}.usage-section{display:flex;flex-direction:column;gap:var(--sp-2)}.usage-section-head{display:flex;align-items:baseline;gap:var(--sp-3);flex-wrap:wrap}.usage-section-title{font-size:var(--fs-md);margin:0}.usage-num{text-align:right}.usage-size{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.usage-minibar{display:block;width:120px;max-width:100%;height:4px;border-radius:var(--r-pill);background:var(--bg-sink);overflow:hidden}.usage-minibar>span{display:block;height:100%;background:var(--accent-weak)}@media (max-width: 720px){.usage-drive-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.usage-minibar{display:none}}.pub{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;background:radial-gradient(80% 60% at 50% -10%,var(--accent-weak),transparent 70%),var(--bg)}.pub-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-5)}.pub-main{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--sp-4) var(--sp-4) var(--sp-6)}.pub-card{width:100%;max-width:440px;display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-6);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md)}.pub-center{align-items:center;text-align:center}.pub-glyph{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--bg-sink);color:var(--muted)}.pub-glyph svg{width:26px;height:26px}.pub-glyph.accent{background:var(--accent-weak);color:var(--accent-ink)}.pub-glyph.warn{background:var(--warn-weak);color:var(--warn)}.pub-title{font-size:var(--fs-lg);font-weight:700;letter-spacing:-.02em;color:var(--ink)}.pub-text{font-size:var(--fs-small);color:var(--muted);line-height:1.55}.pub-file{display:flex;align-items:center;gap:var(--sp-3)}.pub-file-text{min-width:0}.pub-file-name{margin-top:2px;font-size:var(--fs-lg);font-weight:650;letter-spacing:-.01em;color:var(--ink);overflow-wrap:anywhere}.pub-file-meta{margin-top:4px;font-size:var(--fs-micro);color:var(--muted)}.pub-note{font-size:var(--fs-small)}.pub-expiry{display:flex;align-items:center;gap:6px;font-size:var(--fs-micro);color:var(--muted)}.pub-download{height:42px}.pub-unlock{display:flex;flex-direction:column;gap:var(--sp-3)}.pub-error{font-size:var(--fs-small);color:var(--danger)}.pub-upload{display:flex;flex-direction:column;gap:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--line)}.pub-upload-label{margin-top:var(--sp-1)}.pub-dropzone{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-5);border:1.5px dashed var(--line-strong);border-radius:var(--r-md);color:var(--muted);font-size:var(--fs-small);cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.pub-dropzone:hover,.pub-dropzone.over{border-color:var(--accent);background:var(--accent-weak);color:var(--accent-ink)}.pub-dropzone svg{width:22px;height:22px}.pub-upload-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-1)}.pub-upload-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);border-radius:var(--r-sm);background:var(--surface-2)}.pub-upload-item.is-done .upload-icon{background:var(--ok-weak);color:var(--ok)}.pub-upload-item.is-err .upload-icon{background:var(--danger-weak);color:var(--danger)}.pub-foot{padding:var(--sp-4);text-align:center;font-size:var(--fs-micro);color:var(--faint)}.pub-main-wide{align-items:flex-start}.pub-browser{max-width:min(880px,100%);padding:0;overflow:hidden}.pub-browser .browser{height:auto;min-height:0}.pub-browser .browser-head{background:transparent;padding:var(--sp-4) var(--sp-4) var(--sp-3)}.pub-browser .browser-area{max-height:min(56vh,520px);padding:0 var(--sp-4) var(--sp-3)}.pub-browser .browser-foot{border-top:1px solid var(--line);padding:var(--sp-2) var(--sp-4)}.pub-browser .toolbar:empty{display:none}.pub-browser .pub-upload{margin:0 var(--sp-4) var(--sp-4)}@media (max-width: 520px){.pub-card{padding:var(--sp-4)}.pub-browser{padding:0}.pub-browser .browser-head,.pub-browser .browser-area,.pub-browser .browser-foot{padding-left:var(--sp-3);padding-right:var(--sp-3)}}.pw{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;background:radial-gradient(80% 60% at 50% -10%,var(--accent-weak),transparent 70%),var(--bg)}.pw-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-5)}.pw-main{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--sp-4) var(--sp-4) var(--sp-6)}.pw-card{width:100%;max-width:460px;display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-6);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md)}.pw-center{align-items:center;text-align:center}.pw-head{display:flex;align-items:center;gap:var(--sp-3)}.pw-glyph{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:13px;background:var(--bg-sink);color:var(--muted)}.pw-glyph svg{width:24px;height:24px}.pw-glyph.accent{background:var(--accent-weak);color:var(--accent-ink)}.pw-title{font-size:var(--fs-lg);font-weight:700;letter-spacing:-.02em;color:var(--ink)}.pw-text{font-size:var(--fs-small);color:var(--muted);line-height:1.55}.pw-account{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2)}.pw-account-text{display:flex;flex-direction:column;min-width:0}.pw-account-name{font-weight:600;color:var(--ink);overflow-wrap:anywhere}.pw-expiry{display:flex;align-items:center;gap:6px;font-size:var(--fs-micro);color:var(--muted)}.pw-policy{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2)}.pw-policy-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-1)}.pw-policy-list li{display:flex;align-items:flex-start;gap:var(--sp-2);font-size:var(--fs-small);color:var(--ink-2);line-height:1.45}.pw-policy-list svg{flex:none;margin-top:2px;color:var(--accent)}.pw-form{display:flex;flex-direction:column;gap:var(--sp-4)}.pw-form .field-error{margin-top:var(--sp-1)}.pw-actions{display:flex;flex-direction:column;gap:var(--sp-2)}.pw-submit{height:42px}.pw-problems{flex-direction:row}.pw-problem-items{margin:var(--sp-1) 0 0;padding-left:var(--sp-4);display:flex;flex-direction:column;gap:2px}.pw-strength{margin-top:var(--sp-2);display:flex;flex-direction:column;gap:6px}.pw-meter{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.pw-seg{height:5px;border-radius:var(--r-pill);background:var(--line-strong);transition:background var(--dur-fast) var(--ease)}.pw-meter-1 .pw-seg.on{background:var(--danger)}.pw-meter-2 .pw-seg.on{background:var(--warn)}.pw-meter-3 .pw-seg.on{background:var(--accent)}.pw-meter-4 .pw-seg.on{background:var(--ok)}.pw-strength-label{font-size:var(--fs-micro);color:var(--ink-2)}.pw-strength-note{color:var(--muted)}.pw-foot{padding:var(--sp-4);text-align:center;font-size:var(--fs-micro);color:var(--faint)}@media (max-width: 520px){.pw-card{padding:var(--sp-4)}}:root{--font-ui: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "SF Mono", "Segoe UI Mono", Menlo, Consolas, "Liberation Mono", monospace;--fs-micro: .6875rem;--fs-small: .8125rem;--fs-body: .875rem;--fs-md: 1rem;--fs-lg: 1.25rem;--fs-xl: 1.75rem;--fs-2xl: 2.5rem;--lh-tight: 1.2;--lh-body: 1.5;--track-label: .08em;--r-sm: 4px;--r-md: 7px;--r-lg: 12px;--r-pill: 999px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--row-h: 40px;--dur-fast: .12s;--dur: .2s;--ease: cubic-bezier(.4, 0, .2, 1);--maxw-app: 1600px}:root,:root[data-theme=light]{color-scheme:light;--bg: #f5f7fa;--bg-sink: #eef1f6;--surface: #ffffff;--surface-2: #f8fafc;--ink: #182234;--ink-2: #3c4759;--muted: #64707f;--faint: #94a0af;--line: #e2e7ee;--line-strong: #cdd5df;--accent: #0d7a83;--accent-ink: #0a5c63;--accent-weak: #e2f1f2;--accent-weak-2: #d0e8ea;--on-accent: #ffffff;--danger: #c0392b;--danger-weak: #fbe9e7;--warn: #a86612;--warn-weak: #fbf0dd;--ok: #2f7d4f;--ok-weak: #e6f2ea;--shadow-sm: 0 1px 2px rgba(24, 34, 52, .06);--shadow-md: 0 2px 4px rgba(24, 34, 52, .06), 0 8px 24px rgba(24, 34, 52, .1);--shadow-lg: 0 4px 8px rgba(24, 34, 52, .08), 0 24px 56px rgba(24, 34, 52, .18);--overlay: rgba(24, 34, 52, .42);--focus: 0 0 0 2px var(--surface), 0 0 0 4px var(--accent)}:root[data-theme=dark]{color-scheme:dark;--bg: #0e1420;--bg-sink: #0a0f18;--surface: #151d2a;--surface-2: #1b2432;--ink: #e9edf3;--ink-2: #b9c3d0;--muted: #8b97a7;--faint: #5f6b7c;--line: #263041;--line-strong: #33404f;--accent: #37c0c6;--accent-ink: #5ad2d6;--accent-weak: #12303a;--accent-weak-2: #164450;--on-accent: #04222a;--danger: #ef6a5c;--danger-weak: #3a1d1b;--warn: #e0a542;--warn-weak: #3a2c16;--ok: #57b97e;--ok-weak: #16321f;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 2px 4px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .5);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .45), 0 24px 56px rgba(0, 0, 0, .6);--overlay: rgba(4, 8, 14, .6);--focus: 0 0 0 2px var(--surface), 0 0 0 4px var(--accent)}@media (prefers-color-scheme: dark){:root:not([data-theme]){color-scheme:dark;--bg: #0e1420;--bg-sink: #0a0f18;--surface: #151d2a;--surface-2: #1b2432;--ink: #e9edf3;--ink-2: #b9c3d0;--muted: #8b97a7;--faint: #5f6b7c;--line: #263041;--line-strong: #33404f;--accent: #37c0c6;--accent-ink: #5ad2d6;--accent-weak: #12303a;--accent-weak-2: #164450;--on-accent: #04222a;--danger: #ef6a5c;--danger-weak: #3a1d1b;--warn: #e0a542;--warn-weak: #3a2c16;--ok: #57b97e;--ok-weak: #16321f;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 2px 4px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .5);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .45), 0 24px 56px rgba(0, 0, 0, .6);--overlay: rgba(4, 8, 14, .6)}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-ui);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4,p,figure{margin:0}a{color:var(--accent-ink);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit}input,select,textarea,button{font-family:inherit}img,svg{display:block;max-width:100%}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--r-sm)}::selection{background:var(--accent-weak-2)}.tnum{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.eyebrow{font-size:var(--fs-micro);font-weight:600;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted)}.muted{color:var(--muted)}.faint{color:var(--faint)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.bidi-isolate{unicode-bidi:plaintext;direction:ltr}.btn{--btn-bg: var(--surface);--btn-ink: var(--ink);--btn-line: var(--line-strong);display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);height:34px;padding:0 var(--sp-3);border:1px solid var(--btn-line);border-radius:var(--r-md);background:var(--btn-bg);color:var(--btn-ink);font-size:var(--fs-small);font-weight:550;white-space:nowrap;cursor:pointer;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--line-strong)}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{width:16px;height:16px}.btn-primary{--btn-bg: var(--accent);--btn-ink: var(--on-accent);--btn-line: transparent;font-weight:600}.btn-primary:hover:not(:disabled){--btn-bg: var(--accent-ink);background:var(--accent-ink)}.btn-danger{--btn-ink: var(--danger);--btn-line: color-mix(in srgb, var(--danger) 40%, var(--line-strong))}.btn-danger:hover:not(:disabled){background:var(--danger-weak)}.btn-danger-solid{--btn-bg: var(--danger);--btn-ink: #fff;--btn-line: transparent;font-weight:600}.btn-danger-solid:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 88%,#000)}.btn-ghost{--btn-bg: transparent;--btn-line: transparent}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-sm{height:28px;padding:0 var(--sp-2);font-size:var(--fs-small)}.btn-icon{width:32px;height:32px;padding:0;border-radius:var(--r-md)}.btn-icon.btn-sm{width:28px;height:28px}.btn-block{width:100%}.field{display:flex;flex-direction:column;gap:var(--sp-1)}.field>label,.label{font-size:var(--fs-small);font-weight:550;color:var(--ink-2)}.hint{font-size:var(--fs-small);color:var(--muted)}.field-error{font-size:var(--fs-small);color:var(--danger)}.input,.select,.textarea{width:100%;height:36px;padding:0 var(--sp-3);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font-size:var(--fs-body);transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.textarea{height:auto;min-height:72px;padding:var(--sp-2) var(--sp-3);resize:vertical;line-height:var(--lh-body)}.input::placeholder,.textarea::placeholder{color:var(--faint)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--bg-sink);color:var(--muted);cursor:not-allowed}.checkbox{display:inline-flex;align-items:center;gap:var(--sp-2);cursor:pointer;font-size:var(--fs-body)}.checkbox input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.badge{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;border-radius:var(--r-pill);font-size:var(--fs-micro);font-weight:600;letter-spacing:.02em;background:var(--bg-sink);color:var(--ink-2);white-space:nowrap}.badge svg{width:12px;height:12px}.badge-accent{background:var(--accent-weak);color:var(--accent-ink)}.badge-warn{background:var(--warn-weak);color:var(--warn)}.badge-danger{background:var(--danger-weak);color:var(--danger)}.badge-ok{background:var(--ok-weak);color:var(--ok)}.spinner{width:16px;height:16px;border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.spinner-lg{width:26px;height:26px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--bg-sink) 0%,var(--surface-2) 50%,var(--bg-sink) 100%);background-size:200% 100%;animation:shimmer 1.3s ease-in-out infinite;border-radius:var(--r-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.divider{height:1px;background:var(--line);border:0;margin:0}.stack{display:flex;flex-direction:column}.row{display:flex;align-items:center}.scroll-y{overflow-y:auto;overscroll-behavior:contain}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:var(--r-pill);border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:var(--muted);background-clip:content-box}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.modal-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:clamp(var(--sp-4),8vh,96px) var(--sp-4) var(--sp-4);background:var(--overlay);backdrop-filter:blur(2px);animation:overlay-in var(--dur) var(--ease)}@keyframes overlay-in{0%{opacity:0}}.modal-panel{width:100%;max-height:calc(100vh - (2*clamp(var(--sp-4),8vh,96px)));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);animation:panel-in var(--dur) var(--ease)}@keyframes panel-in{0%{opacity:0;transform:translateY(8px) scale(.99)}}.modal-sm{max-width:440px}.modal-md{max-width:560px}.modal-lg{max-width:760px}.modal-head{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4) var(--sp-4) var(--sp-3);border-bottom:1px solid var(--line)}.modal-head-text{flex:1;min-width:0}.modal-head .eyebrow{margin-bottom:3px}.modal-title{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-lg);font-weight:650;letter-spacing:-.01em;line-height:var(--lh-tight)}.modal-title-icon{display:inline-flex;color:var(--accent)}.modal-title-icon svg{width:20px;height:20px}.modal-body{padding:var(--sp-4);overflow-y:auto}.modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--line);background:var(--surface-2);border-radius:0 0 var(--r-lg) var(--r-lg)}.confirm-body{font-size:var(--fs-body);color:var(--ink-2);line-height:var(--lh-body)}.confirm-body strong{color:var(--ink)}.toast-region{position:fixed;z-index:200;right:var(--sp-4);top:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2);width:min(380px,calc(100vw - 2 * var(--sp-4)));pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3);background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--muted);border-radius:var(--r-md);box-shadow:var(--shadow-md);animation:toast-in var(--dur) var(--ease)}@keyframes toast-in{0%{opacity:0;transform:translate(12px)}}.toast-success{border-left-color:var(--ok)}.toast-error{border-left-color:var(--danger)}.toast-warning{border-left-color:var(--warn)}.toast-info{border-left-color:var(--accent)}.toast-icon{flex:none;display:inline-flex;margin-top:1px}.toast-success .toast-icon{color:var(--ok)}.toast-error .toast-icon{color:var(--danger)}.toast-warning .toast-icon{color:var(--warn)}.toast-info .toast-icon{color:var(--accent)}.toast-content{flex:1;min-width:0}.toast-msg{font-size:var(--fs-small);color:var(--ink);line-height:1.4}.toast-ref{margin-top:2px;font-size:var(--fs-micro);color:var(--muted)}.toast-close{flex:none;display:inline-flex;padding:2px;border:0;background:transparent;color:var(--muted);border-radius:var(--r-sm);cursor:pointer}.toast-close:hover{color:var(--ink);background:var(--surface-2)}.menu{position:fixed;z-index:150;min-width:200px;padding:var(--sp-1);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--shadow-md);animation:menu-in var(--dur-fast) var(--ease)}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px)}}.menu-item{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:7px var(--sp-2);border:0;background:transparent;border-radius:var(--r-sm);font-size:var(--fs-small);color:var(--ink);text-align:left;cursor:pointer}.menu-item:hover:not(:disabled),.menu-item.active{background:var(--accent-weak);color:var(--accent-ink)}.menu-item:disabled{color:var(--faint);cursor:not-allowed}.menu-item svg{width:16px;height:16px;flex:none}.menu-item-danger{color:var(--danger)}.menu-item-danger:hover:not(:disabled){background:var(--danger-weak);color:var(--danger)}.menu-sep{height:1px;margin:var(--sp-1) 4px;background:var(--line)}.menu-label{padding:var(--sp-1) var(--sp-2);font-size:var(--fs-micro);font-weight:600;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted)}.menu-shortcut{margin-left:auto;font-size:var(--fs-micro);color:var(--faint)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line)}.tab{padding:var(--sp-2) var(--sp-3);border:0;background:transparent;border-bottom:2px solid transparent;margin-bottom:-1px;font-size:var(--fs-small);font-weight:550;color:var(--muted);cursor:pointer}.tab:hover{color:var(--ink)}.tab.active{color:var(--accent-ink);border-bottom-color:var(--accent)}.segmented{display:inline-flex;padding:2px;gap:2px;background:var(--bg-sink);border:1px solid var(--line);border-radius:var(--r-md)}.segmented button{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:0;background:transparent;border-radius:5px;font-size:var(--fs-small);color:var(--muted);cursor:pointer}.segmented button:hover{color:var(--ink)}.segmented button.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.segmented button svg{width:16px;height:16px}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-7) var(--sp-4);text-align:center;color:var(--muted)}.empty-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:var(--r-lg);background:var(--bg-sink);color:var(--faint)}.empty-icon svg{width:26px;height:26px}.empty-title{font-size:var(--fs-md);font-weight:600;color:var(--ink)}.empty-text{max-width:340px;font-size:var(--fs-small)}.notice{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-md);font-size:var(--fs-small);line-height:1.45;border:1px solid var(--line);background:var(--surface-2)}.notice svg{flex:none;width:18px;height:18px;margin-top:1px}.notice-warn{border-color:color-mix(in srgb,var(--warn) 40%,var(--line));background:var(--warn-weak);color:var(--warn)}.notice-danger{border-color:color-mix(in srgb,var(--danger) 40%,var(--line));background:var(--danger-weak);color:var(--danger)}.notice-accent{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:var(--accent-weak);color:var(--accent-ink)}.notice strong{font-weight:650}.app-shell{display:grid;grid-template-columns:264px minmax(0,1fr);height:100vh;height:100dvh;background:var(--bg)}.app-main{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.brand{display:flex;align-items:center;gap:var(--sp-2)}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;color:var(--on-accent);background:linear-gradient(150deg,var(--accent),var(--accent-ink));box-shadow:inset 0 0 0 1px #ffffff1f}.brand-mark svg{width:18px;height:18px}.brand-mark-lg{width:48px;height:48px;border-radius:12px}.brand-mark-lg svg{width:26px;height:26px}.brand-text{font-size:var(--fs-md);font-weight:700;letter-spacing:-.02em;color:var(--ink)}.brand-accent{color:var(--accent)}.rail{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4) var(--sp-3);background:var(--bg-sink);border-right:1px solid var(--line);min-height:0}.rail-brand{padding:var(--sp-1) var(--sp-2) var(--sp-4)}.rail-nav{display:flex;flex-direction:column;gap:2px}.rail-link{display:flex;align-items:center;gap:var(--sp-3);padding:9px var(--sp-3);border-radius:var(--r-md);color:var(--ink-2);font-size:var(--fs-body);font-weight:550;text-decoration:none;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.rail-link:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}.rail-link.active{background:var(--accent-weak);color:var(--accent-ink)}.rail-link svg{width:19px;height:19px;flex:none}.rail-foot{margin-top:auto;display:flex;flex-direction:column;gap:var(--sp-3);padding-top:var(--sp-3)}.quota{display:flex;flex-direction:column;gap:6px;padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.quota-head{display:flex;align-items:center;justify-content:space-between}.quota-pct{font-size:var(--fs-micro);color:var(--muted)}.quota-pct.near{color:var(--warn)}.quota-track{height:6px;border-radius:var(--r-pill);background:var(--bg-sink);overflow:hidden}.quota-fill{height:100%;border-radius:var(--r-pill);background:var(--accent);transition:width var(--dur) var(--ease)}.quota-fill.near{background:var(--warn)}.quota-text{font-size:var(--fs-micro);color:var(--muted)}.user-card{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);cursor:pointer;text-align:left}.user-card:hover{background:var(--surface-2)}.avatar{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:linear-gradient(150deg,var(--accent),var(--accent-ink));color:var(--on-accent);font-size:var(--fs-small);font-weight:650}.avatar svg{width:18px;height:18px}.user-meta{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}.user-name{font-size:var(--fs-small);font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-provider{font-size:var(--fs-micro);color:var(--muted)}.user-card>svg{flex:none;color:var(--muted)}.menu-userblock{display:flex;flex-direction:column;gap:1px;padding:2px var(--sp-2) var(--sp-1);font-size:var(--fs-small)}.menu-username{font-weight:600;color:var(--ink)}.menu-userblock .mono{font-size:var(--fs-micro)}.mobile-bar,.rail-scrim{display:none}@media (max-width: 860px){.app-shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.mobile-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg-sink);border-bottom:1px solid var(--line);grid-column:1}.rail{position:fixed;z-index:60;top:0;left:0;bottom:0;width:280px;transform:translate(-100%);transition:transform var(--dur) var(--ease);box-shadow:var(--shadow-lg)}.rail-open .rail{transform:translate(0)}.rail-scrim{display:block;position:fixed;inset:0;z-index:55;background:var(--overlay)}.app-main{grid-column:1}}.centered-page{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);min-height:100vh;min-height:100dvh;padding:var(--sp-5);text-align:center}.page{display:flex;flex-direction:column;min-height:0;height:100%}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-5) var(--sp-5) var(--sp-4);border-bottom:1px solid var(--line)}.page-title{font-size:var(--fs-xl);font-weight:700;letter-spacing:-.02em;color:var(--ink)}.page-sub{margin-top:2px;font-size:var(--fs-small);color:var(--muted)}.page-body{flex:1;min-height:0;overflow:auto;padding:var(--sp-5)}
