/* Keepspan: cool slate + electric blue, with matching light and dark themes. */
:root{color-scheme:light;--ks-canvas:#F4F7FC;--ks-surface:#FFFFFF;--ks-surface-soft:#F8FAFD;--ks-surface-raised:#FFFFFF;--ks-ink:#172033;--ks-muted:#52617A;--ks-subtle:#61728C;--ks-line:#D6DFEC;--ks-hairline:#E5EBF4;--ks-accent:#245EEA;--ks-accent-hover:#1D4ED8;--ks-accent-ink:#174BCC;--ks-accent-soft:#EAF1FF;--ks-accent-line:#C4D6FC;--ks-hero:#EEF4FF;--ks-hero-ink:#31547F;--ks-icon:#245EEA;--ks-focus:#245EEA;--ks-sidebar:#101827;--ks-sidebar-raised:#1A263C;--ks-sidebar-line:#34445E;--ks-sidebar-ink:#E8EEF9;--ks-sidebar-muted:#A4B3CC;--ks-sidebar-active:#223658;--ks-sidebar-accent:#C7DDFF;--ks-success:#176747;--ks-success-soft:#E8F7F1;--ks-success-line:#B6E3D0;--ks-warning:#875417;--ks-warning-soft:#FFF5E5;--ks-warning-line:#EDCC90;--ks-danger:#AB2C43;--ks-danger-soft:#FFF0F2;--ks-danger-line:#F2C3CD;--ks-on-accent:#FFFFFF;--ks-backdrop:#09122480;--ks-shadow:#09142D1F;}
:root[data-theme="dark"]{color-scheme:dark;--ks-canvas:#0C111B;--ks-surface:#141D2D;--ks-surface-soft:#182438;--ks-surface-raised:#1D2A40;--ks-ink:#E9EEF8;--ks-muted:#A9B7CE;--ks-subtle:#8FA0BC;--ks-line:#34445E;--ks-hairline:#25364F;--ks-accent:#2563EB;--ks-accent-hover:#1D4ED8;--ks-accent-ink:#91BBFF;--ks-accent-soft:#142B4E;--ks-accent-line:#2C4A76;--ks-hero:#152844;--ks-hero-ink:#B7CEF0;--ks-icon:#8AB5FF;--ks-focus:#91BBFF;--ks-sidebar:#090E18;--ks-sidebar-raised:#152239;--ks-sidebar-line:#34445E;--ks-sidebar-ink:#E9EFFB;--ks-sidebar-muted:#9EAEC9;--ks-sidebar-active:#172F53;--ks-sidebar-accent:#9CC6FF;--ks-success:#8CDEBB;--ks-success-soft:#123329;--ks-success-line:#2C664F;--ks-warning:#F4CE82;--ks-warning-soft:#372B17;--ks-warning-line:#68542F;--ks-danger:#FDA4B3;--ks-danger-soft:#3C1D28;--ks-danger-line:#794051;--ks-on-accent:#FFFFFF;--ks-backdrop:#02060FB8;--ks-shadow:#00000040;}
@font-face{font-family:KeepspanUI;src:local("Avenir Next"),local("Segoe UI"),local("DejaVu Sans");font-display:swap}
:root{font-family:KeepspanUI,system-ui,sans-serif;color:var(--ks-ink);background:var(--ks-canvas);font-size:14px;--accent:var(--ks-accent);--ink:var(--ks-ink);--muted:var(--ks-muted);--line:var(--ks-line);--paper:var(--ks-surface);--pale:var(--ks-accent-soft);--orange:var(--ks-warning)}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;border:0;border-radius:8px;background:var(--accent);color:var(--ks-on-accent);padding:11px 17px;font-weight:650;line-height:1.2}button:hover{filter:brightness(1.08)}button:disabled{cursor:wait;opacity:.55}button.secondary{background:var(--ks-surface);color:var(--ink);border:1px solid var(--line)}button.quiet{background:transparent;color:var(--accent);padding:7px 0}button.small{font-size:12px;padding:8px 11px}button.danger{color:var(--ks-danger);background:var(--ks-danger-soft)}a{color:var(--accent)}svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}h1,h2,h3,p{margin-top:0}h1{font-size:31px;line-height:1.2;font-weight:650;letter-spacing:-1px;margin-bottom:9px}h2{font-size:18px;letter-spacing:-.3px;margin-bottom:8px}h3{font-size:14px;margin-bottom:7px}p{line-height:1.65;color:var(--muted)}.small-text{font-size:12px}.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:1.6px;text-transform:uppercase;font-weight:750;color:var(--ks-muted);margin-bottom:12px}.brand{display:flex;align-items:center;gap:10px;font-size:23px;font-weight:720;letter-spacing:-.8px}.brand img{width:39px;height:39px;object-fit:contain;border-radius:9px}.brand span{color:inherit}.shell{display:grid;grid-template-columns:244px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--ks-surface);border-right:1px solid var(--line);padding:30px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar .brand{margin:0 6px 35px}.company-switch{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--ks-surface)}.company-switch label{font-size:10px;text-transform:uppercase;letter-spacing:1.3px;color:var(--muted)}.company-switch select{border:0;padding:6px 0 0;background:transparent;color:var(--ink);font-weight:650;width:100%;font-size:13px}.sidebar nav{display:flex;flex-direction:column;gap:6px;margin-top:26px}.nav-button{display:flex;align-items:center;gap:12px;text-align:left;color:var(--ks-sidebar-muted);background:none;font-weight:550;padding:12px}.nav-button.active{background:var(--ks-accent-soft);color:var(--ks-accent-ink)}.sidebar-footer{margin-top:auto;padding-top:30px}.preview-tag{display:inline-flex;border:1px solid var(--ks-accent-line);border-radius:20px;padding:5px 9px;color:var(--ks-accent-ink);font-size:10px;font-weight:700;letter-spacing:.5px}.account{border-top:1px solid var(--line);margin-top:18px;padding-top:18px;display:flex;align-items:center;gap:10px}.avatar{height:34px;width:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--ks-accent-soft);color:var(--ks-accent-ink);font-weight:700;font-size:12px;flex-shrink:0}.account-name{font-size:12px;font-weight:650;max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace{min-width:0}.topbar{height:79px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;background:var(--ks-surface)}.breadcrumb{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:10px}.breadcrumb strong{color:var(--ink);font-weight:550}.top-actions{display:flex;gap:18px;align-items:center}.content{max-width:1380px;margin:0 auto;padding:36px 42px 60px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.page-heading p{margin-bottom:0}.badge{font-size:10px;display:inline-block;padding:4px 8px;border-radius:20px;background:var(--ks-accent-soft);color:var(--ks-accent-ink);white-space:nowrap;text-transform:capitalize;font-weight:650}.badge.muted{background:var(--ks-surface-soft);color:var(--ks-muted)}.badge.amber{background:var(--ks-warning-soft);color:var(--ks-warning)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:25px}.stat{background:var(--ks-surface);border:1px solid var(--line);padding:23px;border-radius:12px}.stat-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px}.stat-top svg{color:var(--ks-icon)}.stat-value{font-size:32px;letter-spacing:-1px;margin:13px 0 5px;font-weight:600;color:var(--ink)}.stat .small-text{margin:0;color:var(--muted)}.grid-two{display:grid;grid-template-columns:1.35fr 1fr;gap:24px}.card{background:var(--ks-surface);border:1px solid var(--line);border-radius:12px;margin-bottom:24px;overflow:hidden}.card-header{padding:23px 25px;display:flex;justify-content:space-between;align-items:center;gap:18px;border-bottom:1px solid var(--ks-hairline)}.card-header p{margin:0;font-size:12px}.card-header h2{margin-bottom:5px}.card-body{padding:25px}.card-body>:last-child{margin-bottom:0}.banner{border:1px solid var(--ks-accent-line);background:var(--ks-hero);border-radius:10px;padding:16px 20px;display:flex;align-items:flex-start;gap:13px;margin-bottom:25px}.banner svg{color:var(--ks-icon);margin-top:2px}.banner p{font-size:12px;line-height:1.6;margin:0;color:var(--ks-accent-ink)}.banner strong{display:block;color:var(--ks-accent-ink);margin-bottom:3px}.row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 0;border-bottom:1px solid var(--ks-hairline)}.row:last-child{border-bottom:0}.row p{margin:0;font-size:12px}.row-title{font-weight:600;margin-bottom:5px}.list-icon{display:flex;align-items:center;gap:13px}.list-icon>svg{width:35px;height:35px;border:1px solid var(--line);border-radius:9px;padding:7px;color:var(--ks-icon)}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:12px}th{padding:13px 24px;background:var(--ks-surface-soft);color:var(--ks-muted);font-weight:500;font-size:11px;border-bottom:1px solid var(--line)}td{padding:17px 24px;border-bottom:1px solid var(--ks-hairline);vertical-align:middle}tr:last-child td{border-bottom:0}.member-cell{display:flex;align-items:center;gap:11px}.member-cell .name{font-weight:650;margin-bottom:4px}.member-cell .email{font-size:11px;color:var(--muted)}.empty{padding:42px 28px;text-align:center}.empty svg{width:35px;height:35px;color:var(--ks-icon);margin-bottom:12px}.empty p{font-size:13px;max-width:440px;margin:0 auto 20px}.empty h3{font-size:16px}.activity{display:flex;gap:13px;padding:13px 0;border-bottom:1px solid var(--ks-hairline)}.activity:last-child{border:0}.activity-dot{width:8px;height:8px;background:var(--ks-accent);border-radius:50%;margin-top:7px;flex-shrink:0}.activity p{font-size:12px;line-height:1.5;margin:0;overflow-wrap:anywhere}.activity time{display:block;font-size:10px;color:var(--ks-muted);margin-top:4px}.activity strong{font-weight:600;color:var(--ink)}.storage-note{border-radius:10px;background:var(--ks-accent-soft);padding:20px;margin-top:20px}.storage-note p{font-size:12px;margin:0;color:var(--ks-accent-ink)}.forms{max-width:600px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}.field label{font-size:12px;font-weight:650}.field input,.field select,.field textarea{border:1px solid var(--ks-line);border-radius:7px;background:var(--ks-surface);color:var(--ink);padding:11px 12px;width:100%;min-height:42px}.field textarea{resize:vertical;min-height:84px}.field small{color:var(--muted);font-size:11px;line-height:1.5}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:10px}.form-error{font-size:12px;color:var(--ks-danger);line-height:1.6;margin:10px 0}.auth{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;background:var(--ks-surface)}.auth-aside{background:var(--ks-sidebar);color:var(--ks-sidebar-ink);display:flex;flex-direction:column;justify-content:space-between;padding:48px 11%;position:relative;overflow:hidden}.auth-aside .brand{color:var(--ks-surface)}.auth-aside h1{font-size:clamp(38px,4vw,63px);letter-spacing:-2.3px;line-height:1.12;font-weight:500;margin:35px 0 25px}.auth-aside p{color:var(--ks-sidebar-muted);max-width:400px;font-size:15px}.auth-aside .eyebrow{color:var(--ks-sidebar-accent)}.auth-aside footer{color:var(--ks-sidebar-muted);font-size:11px}.auth-art{display:flex;gap:12px;margin:25px 0 35px}.auth-tile{width:83px;height:80px;border:1px solid var(--ks-sidebar-line);border-radius:14px;background:var(--ks-sidebar-raised);display:flex;align-items:center;justify-content:center}.auth-tile svg{width:33px;height:33px;color:var(--ks-sidebar-accent)}.auth-form-area{display:flex;align-items:center;justify-content:center;padding:40px}.auth-panel{width:100%;max-width:405px}.auth-panel h2{font-size:26px;margin-bottom:10px}.auth-panel form>button[type=submit]{width:100%;margin-top:7px}.auth-panel>p{font-size:13px}.auth-panel .preview-tag{margin-bottom:24px}.auth-footer{border-top:1px solid var(--line);padding-top:20px;margin-top:27px;font-size:11px;color:var(--muted);line-height:1.6}.auth-switch{display:block;margin:18px auto 0}.auth-forgot{margin-top:22px;text-align:center}.auth-forgot p{margin-bottom:0}.auth-forgot .auth-switch{margin-top:6px}.loading{display:grid;place-content:center;text-align:center;min-height:100vh}.loading img{width:75px;margin:0 auto 15px}.loading p{font-size:13px}dialog{border:1px solid var(--line);border-radius:14px;padding:28px;width:min(510px,calc(100% - 32px));max-height:90vh;color:var(--ink);box-shadow:0 24px 80px var(--ks-shadow)}dialog::backdrop{background:var(--ks-backdrop);backdrop-filter:blur(3px)}dialog h2{font-size:23px;margin-bottom:10px}dialog>p{font-size:12px}dialog input[readonly]{font-size:12px;background:var(--ks-surface-soft)}#notice{display:none;position:fixed;bottom:25px;right:25px;max-width:min(470px,calc(100% - 50px));z-index:10;background:var(--ks-surface-raised);color:var(--ks-on-accent);padding:15px 20px;border-radius:9px;box-shadow:0 6px 25px var(--ks-shadow);line-height:1.5;font-size:13px}#notice.visible{display:block}#notice.error{background:var(--ks-danger)}.nowrap{white-space:nowrap}.wrap{overflow-wrap:anywhere}.loading-row{color:var(--muted);padding:40px}.section-label{font-size:11px;text-transform:uppercase;letter-spacing:1.2px;color:var(--ks-muted);margin:25px 0 12px}.inline-actions{display:flex;gap:10px;align-items:center}
@media(min-width:1550px){.content{padding-top:50px}.auth-aside{padding-left:15%;padding-right:15%}}@media(max-width:1100px){.shell{grid-template-columns:214px minmax(0,1fr)}.sidebar{padding:24px 14px}.content{padding:28px 24px}.topbar{padding:0 24px}.grid-two{grid-template-columns:1fr}.auth-aside{padding:40px 35px}.auth-form-area{padding:30px}.stats{gap:10px}.stat{padding:18px}td,th{padding-left:16px;padding-right:16px}}@media(max-width:740px){.shell{display:block}.sidebar{position:relative;height:auto;padding:18px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{margin:0 0 16px}.company-switch{padding:8px 12px}.sidebar nav{margin-top:15px;flex-direction:row;overflow:auto;gap:4px}.nav-button{font-size:12px;padding:9px;white-space:nowrap}.nav-button svg{width:16px}.sidebar-footer{display:none}.topbar{height:60px;padding:0 18px}.content{padding:25px 18px}.page-heading{align-items:flex-start}.page-heading h1{font-size:26px}.page-heading p{font-size:12px}.stats{grid-template-columns:1fr}.stat{display:grid;grid-template-columns:1fr auto;align-items:center}.stat-value{grid-column:2;grid-row:1 / span 2;margin:0}.stat-top{justify-content:flex-start;gap:10px}.stat .small-text{margin-top:7px}.auth{grid-template-columns:1fr}.auth-aside{padding:25px;min-height:0}.auth-aside>div:not(:first-child),.auth-aside footer{display:none}.auth-aside .brand{margin:0}.auth-form-area{padding:35px 25px}.top-actions{gap:10px}.card-header{padding:20px}.card-body{padding:20px}.form-row{grid-template-columns:1fr;gap:0}.page-heading>button{font-size:12px;padding:10px}.auth-panel{max-width:460px}}

.appearance{display:inline-flex;align-items:center;gap:3px;padding:4px;background:var(--ks-surface-soft);border:1px solid var(--ks-line);border-radius:10px;flex-shrink:0}
.appearance button{border:0;background:transparent;color:var(--ks-muted);padding:7px 10px;border-radius:6px;font-family:inherit;font-size:11px;font-weight:600;line-height:1.2;cursor:pointer;white-space:nowrap}
.appearance button[aria-pressed="true"]{background:var(--ks-accent);color:var(--ks-on-accent);box-shadow:0 2px 6px var(--ks-shadow)}
button:focus-visible,a:focus-visible{outline:2px solid var(--ks-focus);outline-offset:3px}
input,select,textarea{accent-color:var(--ks-accent)}
input::placeholder,textarea::placeholder{color:var(--ks-subtle);opacity:1}
::selection{background:var(--ks-accent-soft);color:var(--ks-accent-ink)}

.sidebar{background:var(--ks-sidebar);color:var(--ks-sidebar-ink);border-color:var(--ks-sidebar-line)}
.company-switch{background:var(--ks-sidebar-raised);border-color:var(--ks-sidebar-line)}
.company-switch label,.sidebar .account-name{color:var(--ks-sidebar-ink)}
.company-switch select{color:var(--ks-sidebar-ink);color-scheme:dark}
.nav-button{color:var(--ks-sidebar-muted)}.nav-button.active{background:var(--ks-sidebar-active);color:var(--ks-sidebar-accent)}
.sidebar .account{border-color:var(--ks-sidebar-line)}.sidebar button.quiet,.sidebar .preview-tag{color:var(--ks-sidebar-accent)}.sidebar .preview-tag{border-color:var(--ks-sidebar-line)}
.auth-aside .brand{color:var(--ks-sidebar-ink)}.auth-form-area{background:var(--ks-surface);padding-top:82px}
.auth-tile{background:var(--ks-sidebar-raised);border-color:var(--ks-sidebar-line)}
.stat,.card{box-shadow:0 3px 16px var(--ks-shadow)}
.badge{background:var(--ks-accent-soft);color:var(--ks-accent-ink)}
#notice{background:var(--ks-surface-raised);color:var(--ks-ink);border:1px solid var(--ks-line)}#notice.error{background:var(--ks-danger-soft);color:var(--ks-danger);border-color:var(--ks-danger-line)}
dialog{background:var(--ks-surface)}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--ks-focus);outline-offset:2px}
.portal-appearance{position:fixed;top:20px;right:24px;z-index:4;box-shadow:0 3px 12px var(--ks-shadow)}
.topbar{padding-right:212px}.preview-tag{background:var(--ks-accent-soft)}.sidebar .preview-tag{background:var(--ks-sidebar-raised)}
@media(max-width:740px){.portal-appearance{top:15px;right:18px}.sidebar .brand{padding-right:145px}.topbar{padding-right:18px}.auth-aside .brand{padding-right:135px}}

.storage-location{overflow-wrap:anywhere;font-weight:600}.storage-setups .card{margin-bottom:0}

.storage-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.storage-check{border-top:1px solid var(--border,#e2e6ee);margin-top:16px;padding-top:12px}
.help-search{max-width:520px}.help-guide .card-body{padding-top:18px}.help-guide ol{margin:0;padding-left:22px}.help-guide li{line-height:1.6;margin:0 0 12px;color:var(--ink)}.help-guide li:last-child{margin-bottom:0}.help-empty{padding:25px;border:1px solid var(--line);border-radius:10px;background:var(--ks-surface)}
.attention-list{display:grid;gap:10px;margin-bottom:18px}.attention-row{padding:13px 15px;border-left:3px solid var(--ks-line);border-radius:7px;background:var(--ks-surface-soft)}.attention-row strong{font-size:13px}.attention-row p{font-size:12px;margin:4px 0 0}.attention-problem .attention-row{border-left-color:var(--ks-danger);background:var(--ks-danger-soft)}.attention-unknown .attention-row{border-left-color:var(--ks-warning)}

/* Separate the independent shared-drive protection forms in the admin dialog. */
#dialog form[data-form^="shared-"]:not([data-form="shared-loading"]) {
  margin: 22px 0;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--border, #e2e8f0);
}
.release-hash { overflow-wrap: anywhere; }
.release-download { display: inline-block; margin-top: 0.5rem; }
.more-options{margin-top:24px;border-top:1px solid var(--line);padding-top:16px}.more-options>summary{cursor:pointer;font-weight:650;font-size:14px;margin-bottom:12px}
/* Confirmation checkboxes (saved recovery codes, keep the storage test file, IT partner scopes). */
.check{display:flex;align-items:flex-start;gap:9px;font-size:13px;line-height:1.5;margin:14px 0 4px;color:var(--ink)}.check input{margin:3px 0 0;width:auto;min-height:0;flex-shrink:0}
