/* screenings4u DOT Management Portal — standalone shell */
:root{--dot-navy:#17365f;--dot-blue:#24467f;--dot-blue-2:#315b9d;--dot-orange:#f05a00;--dot-canvas:#f4f7fb;--dot-surface:#fff;--dot-line:#dbe4ef;--dot-line-soft:#edf2f7;--dot-text:#203653;--dot-muted:#6b7b91;--dot-success:#137a4b;--dot-danger:#b42318;--dot-warning:#9a6700;--dot-sidebar:272px;--dot-topbar:66px;--dot-radius:12px;--dot-shadow:0 10px 28px rgba(20,49,91,.08)}
*{box-sizing:border-box}html{min-height:100%;background:var(--dot-canvas)}body{margin:0;min-height:100vh;background:var(--dot-canvas);color:var(--dot-text);font:14px/1.5 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}button,input,select,textarea{font:inherit}.dot-auth-pending body>*:not(#dot-auth-loading):not(#dot-auth-error){visibility:hidden!important}.dot-auth-pending #dot-auth-loading,.dot-auth-pending #dot-auth-error{visibility:visible!important}
#dot-auth-loading{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;background:var(--dot-canvas);color:var(--dot-blue)}.dot-auth-card{text-align:center}.dot-spinner{width:34px;height:34px;margin:0 auto 14px;border:3px solid #dbe5f1;border-top-color:var(--dot-blue);border-radius:50%;animation:dotspin .7s linear infinite}@keyframes dotspin{to{transform:rotate(360deg)}}
.dot-app{min-height:100vh;display:grid;grid-template-columns:var(--dot-sidebar) minmax(0,1fr)}.dot-sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--dot-line);display:flex;flex-direction:column;z-index:60}.dot-brand{padding:19px 18px 16px;border-bottom:1px solid var(--dot-line-soft)}.dot-brand a{text-decoration:none;display:flex;align-items:center;gap:11px}.dot-brand-mark{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--dot-orange);color:white;font-weight:900;box-shadow:0 8px 18px rgba(240,90,0,.2)}.dot-brand-copy strong{display:block;color:var(--dot-navy);font-size:14px}.dot-brand-copy span{display:block;color:var(--dot-muted);font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:800}.dot-workspace{padding:14px 18px 8px}.dot-workspace span{display:block;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:#8b99aa;font-weight:800}.dot-workspace strong{display:block;margin-top:2px;color:var(--dot-blue);font-size:13px}.dot-nav{padding:0 10px 18px;overflow:auto;flex:1}.dot-nav-group{margin-top:10px}.dot-nav-group>span{display:block;padding:8px 9px 5px;color:#8996a8;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.dot-nav a{display:flex;align-items:center;gap:9px;padding:8px 10px;margin:2px 0;border-radius:8px;text-decoration:none;color:#49617e;font-size:12.5px;font-weight:650}.dot-nav a:hover{background:#f1f5fb;color:var(--dot-navy)}.dot-nav a.active{background:#eaf2ff;color:var(--dot-navy);box-shadow:inset 3px 0 0 var(--dot-blue);font-weight:800}.dot-nav-icon{width:18px;text-align:center;color:var(--dot-blue)}.dot-sidebar-footer{padding:15px 18px;border-top:1px solid var(--dot-line-soft);color:#8190a4;font-size:10px}.dot-main{min-width:0}.dot-topbar{height:var(--dot-topbar);position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--dot-line);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 24px}.dot-topbar-left{display:flex;align-items:center;gap:12px;min-width:0}.dot-menu-button{display:none;width:38px;height:38px;border:1px solid var(--dot-line);border-radius:8px;background:#fff;color:var(--dot-blue);cursor:pointer}.dot-topbar-title strong{display:block;color:var(--dot-navy);font-size:13px}.dot-topbar-title small{display:block;color:var(--dot-muted);font-size:10px}.dot-topbar-actions{display:flex;align-items:center;gap:8px}.dot-icon-button,.dot-user-button{border:1px solid var(--dot-line);background:#fff;color:var(--dot-blue);border-radius:8px;min-height:38px;cursor:pointer}.dot-icon-button{width:38px;display:grid;place-items:center}.dot-user-button{display:flex;align-items:center;gap:8px;padding:5px 10px 5px 6px}.dot-avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eaf2ff;color:var(--dot-blue);font-size:10px;font-weight:900}.dot-user-copy{text-align:left}.dot-user-copy strong{display:block;font-size:11px;color:var(--dot-navy)}.dot-user-copy small{display:block;font-size:9px;color:var(--dot-muted)}
.dot-page{width:min(100%,1480px);margin:0 auto;padding:28px 30px 52px}.dot-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:20px}.dot-eyebrow{display:block;color:var(--dot-blue);font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.dot-page-head h1{margin:5px 0 7px;font-size:clamp(24px,2vw,32px);line-height:1.12;color:var(--dot-navy);letter-spacing:-.025em}.dot-page-head p{max-width:850px;margin:0;color:var(--dot-muted);line-height:1.6}.dot-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.dot-btn{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 13px;border:1px solid var(--dot-line);border-radius:8px;background:#fff;color:var(--dot-blue);text-decoration:none;font-weight:800;cursor:pointer}.dot-btn:hover{border-color:#b6c7da;background:#f8fbff}.dot-btn.primary{background:var(--dot-orange);border-color:var(--dot-orange);color:#fff}.dot-btn.danger{color:var(--dot-danger)}
.dot-banner{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:14px 16px;margin-bottom:18px;border:1px solid #cfe0f5;border-radius:10px;background:#eff6ff;color:#294c79}.dot-banner.warning{border-color:#f2d6a0;background:#fff8ea;color:#775016}.dot-banner strong{display:block}.dot-banner span{display:block;margin-top:2px;font-size:12px;color:inherit;opacity:.85}.dot-status-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:999px;background:#edf4fb;color:var(--dot-blue);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.dot-status-pill.ok{background:#eaf7f0;color:var(--dot-success)}.dot-status-pill.warn{background:#fff4dc;color:var(--dot-warning)}.dot-status-pill.bad{background:#fff0ef;color:var(--dot-danger)}
.dot-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px}.dot-metric{padding:16px 17px;border:1px solid var(--dot-line);border-radius:10px;background:#fff;box-shadow:0 1px 2px rgba(16,38,74,.03)}.dot-metric span{display:block;color:var(--dot-muted);font-size:10px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.dot-metric strong{display:block;margin:5px 0 2px;color:var(--dot-navy);font-size:25px;line-height:1.1}.dot-metric small{color:#8593a5;font-size:10px}.dot-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:15px}.dot-card{grid-column:span 12;border:1px solid var(--dot-line);border-radius:10px;background:#fff;box-shadow:0 1px 2px rgba(16,38,74,.03);overflow:hidden}.dot-card.half{grid-column:span 6}.dot-card.third{grid-column:span 4}.dot-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:15px 17px;border-bottom:1px solid var(--dot-line-soft)}.dot-card-head h2{margin:0;color:var(--dot-navy);font-size:15px}.dot-card-head p{margin:4px 0 0;color:var(--dot-muted);font-size:11px}.dot-card-body{padding:16px 17px}.dot-card-link{display:block;text-decoration:none}.dot-card-link:hover{background:#fbfdff}.dot-table-wrap{width:100%;overflow:auto}.dot-table{width:100%;border-collapse:collapse}.dot-table th,.dot-table td{padding:11px 13px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--dot-line-soft)}.dot-table th{background:#fbfcfe;color:#6e7d91;font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:900;white-space:nowrap}.dot-table td{font-size:12px;color:#405571}.dot-table tr:last-child td{border-bottom:0}.dot-table td strong{display:block;color:var(--dot-navy)}.dot-table td small{display:block;color:#8896a7}.dot-empty{padding:34px 18px;text-align:center;color:#8491a3}.dot-kpi-list{display:grid;gap:10px}.dot-kpi-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--dot-line-soft)}.dot-kpi-row:last-child{border-bottom:0}.dot-kpi-row span{color:#63758d}.dot-kpi-row strong{color:var(--dot-navy)}.dot-module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.dot-module{display:block;padding:15px;border:1px solid var(--dot-line);border-radius:9px;text-decoration:none;background:#fff}.dot-module:hover{border-color:#b7c8dd;box-shadow:var(--dot-shadow)}.dot-module b{display:block;color:var(--dot-navy);font-size:13px}.dot-module span{display:block;margin-top:5px;color:var(--dot-muted);font-size:11px;line-height:1.45}
.dot-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.dot-field label{display:block;margin-bottom:6px;color:#40536e;font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.dot-field input,.dot-field select,.dot-field textarea{width:100%;min-height:42px;padding:9px 11px;border:1px solid #cfd9e6;border-radius:8px;background:#fff;color:#1f3857;outline:none}.dot-field textarea{min-height:112px;resize:vertical}.dot-field input:focus,.dot-field select:focus,.dot-field textarea:focus{border-color:var(--dot-blue);box-shadow:0 0 0 3px rgba(36,70,127,.09)}.dot-help{margin-top:5px;color:#8a97a7;font-size:10px}.dot-code{padding:12px;border:1px solid var(--dot-line);border-radius:8px;background:#f8fafc;color:#41536b;font:11px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}
.dot-overlay{position:fixed;inset:0;z-index:55;background:rgba(13,31,57,.4);display:none}.dot-toast{position:fixed;right:22px;bottom:22px;z-index:9999;max-width:360px;padding:12px 14px;border-radius:9px;background:#17365f;color:#fff;box-shadow:0 16px 36px rgba(0,0,0,.18);font-size:12px}.dot-modal{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:20px;background:rgba(13,31,57,.48)}.dot-modal-card{width:min(560px,100%);max-height:90vh;overflow:auto;padding:22px;border-radius:13px;background:#fff;box-shadow:0 24px 64px rgba(0,0,0,.24)}.dot-modal-card h3{margin:0 0 8px;color:var(--dot-navy)}.dot-modal-card p{margin:0 0 16px;color:var(--dot-muted)}.dot-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}
.dot-login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr)}.dot-login-brand{position:relative;overflow:hidden;padding:56px 7vw;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,#102f60,#24467f 62%,#315b9d);color:#fff}.dot-login-brand:before{content:"";position:absolute;width:430px;height:430px;border:65px solid rgba(255,255,255,.045);border-radius:50%;right:-170px;top:-125px}.dot-login-brand:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;left:-200px;bottom:-170px;background:rgba(240,90,0,.13)}.dot-login-content{position:relative;z-index:1;max-width:650px}.dot-login-logo{display:flex;align-items:center;gap:12px;margin-bottom:68px;font-size:24px;font-weight:900;letter-spacing:-.04em}.dot-login-logo .dot-brand-mark{width:43px;height:43px}.dot-login-kicker{color:#ff9a5c;font-size:11px;font-weight:900;letter-spacing:.13em;margin-bottom:15px}.dot-login-brand h1{margin:0;max-width:620px;font-size:clamp(42px,5vw,68px);line-height:.98;letter-spacing:-.055em}.dot-login-brand p{max-width:560px;margin:22px 0 0;color:#d7e3f5;font-size:16px;line-height:1.65}.dot-login-panel{display:flex;align-items:center;justify-content:center;padding:38px;background:rgba(255,255,255,.8)}.dot-login-card{width:100%;max-width:450px}.dot-login-card h2{margin:18px 0 8px;color:var(--dot-blue);font-size:34px;line-height:1;letter-spacing:-.04em}.dot-login-card>p{margin:0 0 28px;color:var(--dot-muted);font-size:13px}.dot-login-form{padding:28px;background:#fff;border:1px solid var(--dot-line);border-radius:15px;box-shadow:0 18px 48px rgba(23,61,120,.10)}.dot-login-status{min-height:18px;margin-top:13px;text-align:center;color:var(--dot-muted);font-size:11px}.dot-login-status.error{color:var(--dot-danger)}.dot-login-status.success{color:var(--dot-success)}
@media(max-width:1120px){.dot-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dot-card.third{grid-column:span 6}}@media(max-width:900px){.dot-app{display:block}.dot-sidebar{position:fixed;left:-282px;top:0;width:272px;transition:left .2s ease;box-shadow:12px 0 32px rgba(0,0,0,.12)}body.dot-menu-open .dot-sidebar{left:0}body.dot-menu-open .dot-overlay{display:block}.dot-menu-button{display:grid;place-items:center}.dot-page{padding:22px 16px 40px}.dot-page-head{flex-direction:column}.dot-actions{justify-content:flex-start;width:100%}.dot-login-shell{grid-template-columns:1fr}.dot-login-brand{min-height:270px;padding:38px 9vw}.dot-login-logo{margin-bottom:35px}.dot-login-panel{padding:36px 20px}}@media(max-width:640px){.dot-metrics{grid-template-columns:1fr}.dot-card.half,.dot-card.third{grid-column:span 12}.dot-field-grid{grid-template-columns:1fr}.dot-user-copy{display:none}.dot-topbar{padding:0 12px}.dot-login-brand{min-height:230px}.dot-login-brand h1{font-size:40px}.dot-login-form{padding:22px 18px}}
.dot-btn.small{min-height:32px;padding:0 10px;font-size:12px}.dot-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dot-detail-item{padding:14px;border:1px solid #dbe4ef;border-radius:10px;background:#f8fafc}.dot-detail-item span{display:block;color:#68778c;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}.dot-detail-item strong{display:block;color:#17365f;overflow-wrap:anywhere}.dot-field textarea{width:100%;min-height:120px;resize:vertical}.dot-field select,.dot-field textarea{border:1px solid #ccd7e5;border-radius:8px;background:#fff;padding:11px 12px;font:inherit;color:#17365f}.dot-check{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid #dbe4ef;border-radius:8px}.dot-json{margin-top:18px}.dot-json pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#10243e;color:#eef5ff;padding:15px;border-radius:10px;font-size:12px}@media(max-width:720px){.dot-detail-grid{grid-template-columns:1fr}}
