@font-face{font-family:Inter;src:url('/static/inter.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--accent:#174f3c;--ink:#222b28;--muted:#6c746f;--line:#e3e7e3;--paper:#f5f7f5;--bronze:#ac8458;--sidebar:#19251f;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:var(--accent)}:focus-visible{outline:3px solid #b98f59;outline-offset:3px}button{border:0}input,select{min-width:0;width:100%;padding:13px 14px;background:#fff;border:1px solid #cfd7d1;border-radius:8px;color:var(--ink)}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}label{display:grid;gap:9px;font-size:.875rem;font-weight:600}p{line-height:1.65}h1,h2,h3,p{margin:0}h1{font-size:2rem;line-height:1.2;letter-spacing:-.04em;font-weight:650}h2{font-size:1.4rem;letter-spacing:-.02em}h3{font-size:1rem}small{font-size:.8rem;line-height:1.5;color:var(--muted)}.boot{display:grid;place-items:center;min-height:100vh;color:var(--muted)}.icon{width:21px;height:21px;flex:none;display:inline-block;vertical-align:middle}.btn{display:inline-flex;gap:9px;align-items:center;justify-content:center;min-height:43px;padding:10px 17px;border-radius:8px;font-size:.875rem;font-weight:600;background:var(--accent);color:#fff;white-space:nowrap;text-decoration:none}.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.ghost{background:transparent;color:var(--muted)}.btn.danger{background:#a3302d}.btn.small{padding:8px 12px;min-height:37px;font-size:.875rem}.icon-btn{width:38px;height:38px;display:inline-grid;place-items:center;background:transparent;color:var(--muted);border-radius:8px}.icon-btn:hover{background:#f0f3f0}.muted{color:var(--muted)}.eyebrow{font-size:.75rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.brand{display:flex;gap:12px;align-items:center;font-weight:650;letter-spacing:-.015em;min-width:0}.brand-mark{height:42px;width:42px;display:grid;place-items:center;border-radius:11px;background:var(--accent);color:#fff;flex:none}.brand-logo{max-width:170px;max-height:54px;object-fit:contain}.brand span{overflow-wrap:anywhere}.brand .eyebrow{font-size:.65rem;letter-spacing:.12em}.login{min-height:100vh;display:grid;place-items:center;background:#fff;padding:32px}.login-panel{display:grid;place-items:center;width:100%}.login-box{width:min(100%,370px)}.login-box .brand{margin-bottom:26px}.login-box h2{font-size:1.6rem}.login-box>p{margin-top:12px;color:var(--muted);font-size:.9375rem}.form{display:grid;gap:22px;margin-top:32px}.password-field{position:relative}.password-field input{padding-right:50px}.password-field button{position:absolute;right:5px;top:6px}.form .btn{min-height:48px}.help{border-top:1px solid var(--line);margin-top:30px;padding-top:24px;font-size:.875rem;color:var(--muted)}.help a{font-weight:600;text-decoration:none}.error{padding:12px 14px;background:#fff1ee;border:1px solid #efd0c9;border-radius:8px;color:#912e26;font-size:.875rem;line-height:1.6}.shell{min-height:100vh;display:grid;grid-template-columns:246px minmax(0,1fr)}.sidebar{background:var(--sidebar);padding:30px 23px;color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:auto}.sidebar .brand{align-items:flex-start;font-size:1.125rem}.sidebar .brand-mark{width:39px;height:39px;background:#30453a}.sidebar .brand .eyebrow{margin-top:7px;color:#a1b6a9}.sidebar .brand-logo{background:white;border-radius:5px;padding:7px;max-width:170px}.nav-label{margin:51px 13px 13px;color:#91a598;font-size:.7rem;letter-spacing:.14em;font-weight:600}.nav{display:grid;gap:7px}.nav button{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:8px;background:transparent;color:#afc0b4;font-size:.9375rem;text-align:left}.nav button.active,.nav button:hover{background:#2c4035;color:white}.sidebar-foot{margin-top:auto;padding:32px 12px 0}.sidebar-foot a{color:#c1d1c7;text-decoration:none;font-size:.875rem}.sidebar-foot p{color:#8ea398;margin-top:12px;font-size:.75rem;line-height:1.6}.main{min-width:0}.topbar{height:84px;background:#fff;border-bottom:1px solid var(--line);padding:0 clamp(24px,4vw,58px);display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar-title{font-size:.875rem;color:var(--muted)}.identity{display:flex;gap:16px;align-items:center;font-size:.875rem}.avatar{height:34px;width:34px;border-radius:50%;background:#e8eeea;color:var(--accent);display:grid;place-items:center;font-size:.75rem;font-weight:700}.content{padding:44px clamp(24px,4vw,58px) 55px;max-width:1600px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:30px}.page-heading .eyebrow{margin-bottom:11px;color:var(--bronze)}.page-heading p{margin-top:12px;color:var(--muted);font-size:.9375rem}.heading-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.workspace-banner{display:flex;align-items:center;gap:20px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 25px;margin-bottom:28px}.workspace-icon{height:48px;width:48px;border-radius:10px;display:grid;place-items:center;background:#eaf0eb;color:var(--accent)}.workspace-banner p{font-size:.875rem;color:var(--muted);margin-top:6px}.badge{display:inline-flex;padding:5px 9px;border-radius:5px;background:#eef3ee;font-size:.75rem;font-weight:550;color:var(--accent);white-space:nowrap}.workspace-banner .badge{margin-left:auto}.file-panel{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.file-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;flex-wrap:wrap}.breadcrumbs{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}.breadcrumbs button{background:none;padding:4px 0;color:var(--muted);font-size:.875rem}.breadcrumbs button:last-child{color:var(--ink);font-weight:600}.breadcrumbs>span{color:#aeb8b0;font-size:.8rem}.search{position:relative;width:245px}.search .icon{position:absolute;top:12px;left:13px;color:#8b948d}.search input{font-size:.875rem;padding-left:43px;border-color:var(--line);background:#fafbf9;min-height:42px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{background:#f9faf8;color:var(--muted);font-size:.75rem;font-weight:550;padding:13px 24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap}td{padding:17px 24px;border-bottom:1px solid #edf0ec;font-size:.875rem;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafbf9}td.actions{text-align:right;white-space:nowrap}.file-name{display:flex;align-items:center;gap:15px;color:var(--ink);font-size:.9375rem;min-width:230px}.file-name button{background:none;color:inherit;font:inherit;padding:0;text-align:left;overflow-wrap:anywhere}.file-name .meta{font-size:.75rem;color:#8b948d;margin-top:5px}.file-tile{height:39px;width:35px;border:1px solid #e0e6e0;border-radius:7px;display:grid;place-items:center;color:#718176;background:#f4f7f3;flex:none}.file-tile.folder{border:0;background:#f3eadc;color:#a1824a}.file-tile.pdf{background:#fcf0ed;color:#bd7464;border-color:#f0dcd6}.file-tile.zip{background:#f0edf5;color:#9180a7;border-color:#e3ddea}.panel-footer{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:16px 24px;font-size:.75rem;color:var(--muted)}.empty{padding:60px 24px;text-align:center}.empty .icon{height:37px;width:37px;color:#a5b5a9;margin-bottom:20px}.empty h3{font-size:1.125rem;margin-bottom:10px}.empty p{font-size:.875rem;color:var(--muted);max-width:440px;margin:auto}.empty .btn{margin-top:20px}.status-text{font-size:.875rem;margin-left:8px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:20px}.card{background:#fff;padding:25px;border:1px solid var(--line);border-radius:12px}.card h3{font-size:1.125rem;margin:16px 0 8px}.card .hostname{font-size:.875rem;color:var(--muted);overflow-wrap:anywhere;display:block;text-decoration:none}.card-footer{margin-top:25px;display:flex;justify-content:space-between;align-items:center;gap:12px}.swatch{height:44px;width:44px;border-radius:11px;display:grid;place-items:center;color:#fff}.muted-block{padding:16px 20px;font-size:.875rem;border-radius:9px;border:1px solid var(--line);background:#fff;line-height:1.6;color:var(--muted);margin-top:28px}.account-cell small{display:block;margin-top:5px}.pill-disabled{background:#f2f2ef;color:#888e86}.upload-state{padding:15px 24px;background:#eff4ef;border-bottom:1px solid var(--line);font-size:.875rem}.upload-state progress{width:100%;height:6px;margin-top:12px;accent-color:var(--accent)}dialog{padding:0;border:1px solid var(--line);border-radius:14px;width:min(95vw,510px);box-shadow:0 24px 80px #10211740;color:var(--ink);max-height:90vh;overflow:auto}dialog::backdrop{background:#10201770;backdrop-filter:blur(3px)}.modal-header{padding:25px 28px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.modal-header h2{font-size:1.25rem}.modal-body{padding:24px 28px}.modal-body>p{font-size:.9375rem;color:var(--muted);margin-bottom:22px}.modal-body .form{margin-top:0;gap:18px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}.inline-fields{display:grid;grid-template-columns:1fr 85px;gap:14px}.inline-fields input[type=color]{padding:5px;min-height:47px}.password-tools{display:flex;gap:8px;align-items:center}.password-tools input{flex:1}.password-tools button{flex:none}.check-row{display:flex;align-items:center;gap:10px;font-size:.875rem;color:var(--muted)}.check-row input{width:18px;height:18px}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--sidebar);color:#fff;padding:15px 22px;max-width:90vw;border-radius:10px;box-shadow:0 10px 40px #17221a20;font-size:.875rem;opacity:0;pointer-events:none;transition:.2s;z-index:20}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.mobile-brand{display:none}.hidden{display:none!important}.footer-note{margin-top:24px;color:#88928a;font-size:.75rem;line-height:1.6}.error-panel{background:#fff;border:1px solid #e7cdc6;border-radius:10px;padding:25px}.error-panel .btn{margin-top:16px}.file-count{font-variant-numeric:tabular-nums}.upload-input{display:none}
@media(min-width:1600px){.content{padding-top:55px}}
@media(max-width:1050px){.shell{grid-template-columns:205px minmax(0,1fr)}.sidebar{padding:28px 16px}.topbar{padding:0 25px}.content{padding:32px 25px}.file-toolbar{padding:18px}.table-wrap th,.table-wrap td{padding-left:18px;padding-right:18px}.modified-col{display:none}.page-heading{align-items:flex-start}.page-heading h1{font-size:1.75rem}.identity .user-name{display:none}}
@media(max-width:720px){.login{padding:18px}.login-panel{place-items:start center}.login-box{max-width:420px}.shell{display:block}.sidebar{position:static;height:auto;padding:18px 21px}.sidebar .brand{font-size:1rem;align-items:center}.sidebar .brand .eyebrow{display:none}.sidebar .brand-logo{max-height:40px;max-width:130px}.sidebar .brand-mark{height:33px;width:33px;border-radius:8px}.nav-label,.sidebar-foot{display:none}.nav{display:flex;gap:5px;overflow:auto;margin-top:17px}.nav button{padding:10px 12px;font-size:.875rem;white-space:nowrap}.topbar{height:64px;padding:0 21px}.avatar{display:none}.identity{gap:4px}.content{padding:28px 18px}.page-heading{flex-direction:column;gap:20px;margin-bottom:24px}.page-heading h1{font-size:1.7rem}.page-heading .eyebrow{font-size:.7rem}.workspace-banner{padding:18px;gap:12px;margin-bottom:20px}.workspace-banner .badge{display:none}.workspace-icon{height:40px;width:40px}.workspace-banner h3{font-size:.9375rem}.workspace-banner p{font-size:.8rem}.file-toolbar{padding:17px;gap:14px}.search{width:100%}.file-name{min-width:140px;gap:10px;font-size:.875rem}.file-name .meta{font-size:.7rem}.file-tile{width:30px;height:35px}.size-col{display:none}.table-wrap th,.table-wrap td{padding:14px 15px}.btn.small{padding:8px 10px;font-size:.8rem}.download-btn .icon{display:none}.panel-footer{padding:15px;font-size:.7rem}.panel-footer span:last-child{display:none}.cards{grid-template-columns:1fr}.modal-body{padding:22px}.modal-header{padding:20px 22px}.heading-actions{width:100%}.heading-actions .btn{flex:1}.accounts-table td.actions{white-space:normal}.accounts-table td.actions .btn{margin-bottom:5px}.company-col{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* staff free-space gauge */
.disk{display:flex;gap:11px;align-items:flex-start;color:#c1d1c7;font-size:.8125rem;margin-bottom:16px}
.disk strong{display:block;color:#fff;font-weight:600}
.disk small{color:#8ea398}
.disk-bar{margin-top:7px;height:5px;width:130px;border-radius:3px;background:#2c4035;overflow:hidden}
.disk-bar span{display:block;height:100%;background:#7fae91}
/* share rule editor */
textarea{width:100%;padding:12px 13px;background:#fff;border:1px solid #cfd7d1;border-radius:8px;color:var(--ink);font:inherit;resize:vertical}
textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
.choice{border:1px solid var(--line);border-radius:10px;padding:16px;display:grid;gap:14px;margin:0}
.choice legend{padding:0 6px;font-size:.875rem;font-weight:600}
.check{display:flex;gap:11px;align-items:flex-start;font-weight:500;cursor:pointer}
.check input{width:auto;min-height:0;padding:0;margin-top:3px;flex:none}
.check small{display:block;color:var(--muted);font-weight:400;margin-top:3px}
.rule-box{display:grid;gap:18px;border:1px solid var(--line);border-radius:10px;padding:16px;background:var(--paper)}
.rule-group{display:grid;gap:10px}
.rule-title{font-size:.75rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.rule-group code{background:#e7ece7;border-radius:4px;padding:1px 4px;font-size:.8rem}
/* generated link */
.link-row{display:flex;gap:10px;margin:22px 0 6px}
.link-row input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125rem}
.detail{display:grid;grid-template-columns:auto 1fr;gap:9px 20px;margin:22px 0 0;font-size:.875rem}
.detail dt{color:var(--muted);font-weight:600}
.detail dd{margin:0;overflow-wrap:anywhere}
.pill-public{background:#fdf1e3;color:#8a5a1d}
/* public share page */
.share-page{min-height:100vh;display:grid;place-items:start center;padding:clamp(22px,6vw,60px) 20px;background:var(--paper)}
.share-card{width:min(100%,760px);background:#fff;border:1px solid var(--line);border-radius:14px;padding:clamp(22px,4vw,38px)}
.share-card .brand{margin-bottom:24px}
.share-card h2,.share-card>p{overflow-wrap:anywhere}
.share-card>p{margin-top:10px}
.share-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:18px 0 24px;color:var(--muted);font-size:.875rem}
.share-meta .icon{width:17px;height:17px}
.share-download{min-height:50px}
@media(max-width:560px){.link-row{flex-direction:column}.detail{grid-template-columns:1fr;gap:3px 0}.detail dd{margin-bottom:10px}}
/* per-row actions menu (appended to body so the panel's overflow cannot clip it) */
.menu-btn{font-size:1.25rem;line-height:1;letter-spacing:.06em;color:var(--ink)}
.menu-btn:hover{background:#e7ece7}
.row-menu{position:fixed;z-index:60;min-width:224px;padding:7px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 38px rgba(20,40,30,.18);display:grid;gap:2px}
.row-menu button,.row-menu a{display:flex;align-items:center;gap:11px;width:100%;padding:11px 12px;border-radius:7px;background:transparent;color:var(--ink);font-size:.9375rem;font-weight:500;text-align:left;text-decoration:none}
.row-menu button:hover,.row-menu a:hover,.row-menu button:focus-visible,.row-menu a:focus-visible{background:#eef3ee}
.row-menu hr{border:0;border-top:1px solid var(--line);margin:5px 2px}
.row-menu .danger-item{color:#a3302d}
.row-menu .danger-item:hover{background:#fdeeec}
.row-menu .icon{width:18px;height:18px;color:var(--muted)}
/* sharing state shown inline in the file list */
.shared-col{white-space:nowrap}
.share-none{font-size:.8125rem}
.share-count{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:5px;background:#eef3ee;color:var(--accent);font-size:.75rem;font-weight:600}
.share-count.is-public{background:#fdf1e3;color:#8a5a1d}
.share-count .icon{width:15px;height:15px}
.share-count:hover{filter:brightness(.96)}
/* link list inside the sharing dialog */
.link-list{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}
.link-list li{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;padding:13px;border:1px solid var(--line);border-radius:9px}
.link-list strong{display:inline-flex;align-items:center;gap:7px;font-size:.9375rem}
.link-list .icon{width:16px;height:16px}
.link-list .meta{margin-top:5px;font-size:.8125rem;color:var(--muted);line-height:1.5}
.link-actions{display:flex;gap:7px;flex-wrap:wrap}
/* whole workspace row is clickable, not just the button */
.row-link{cursor:pointer}
.row-link:hover{background:#f7faf7}
.file-name a{color:var(--ink);text-decoration:none;font-weight:550}
.file-name a:hover{text-decoration:underline}
