@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#0a1020;--panel:rgba(17,26,47,.88);--line:rgba(154,174,220,.15);--text:#f1f5ff;--muted:#93a1bf;--purple:#8c72ff;--cyan:#54d7e9;--green:#4bd6a0;--amber:#f4bb63}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 15% 0%,#18234b 0,transparent 43%),radial-gradient(ellipse at 95% 70%,#102d3d 0,transparent 38%),var(--bg);font-family:'DM Sans',sans-serif;color:var(--text);font-size:14px}.ambient{position:fixed;pointer-events:none;filter:blur(90px);opacity:.12;border-radius:50%;z-index:-1}.a1{width:260px;height:260px;background:#7e5cff;top:20%;left:-120px}.a2{width:300px;height:300px;background:#12c9d8;right:-170px;bottom:5%}.topbar{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 max(calc((100vw - 1440px)/2),24px);gap:12px;background:rgba(8,14,29,.7);backdrop-filter:blur(18px)}.brand-mark{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,#8e72ff,#38cce0);display:grid;place-items:center;color:#fff;font:800 14px Manrope;box-shadow:0 6px 25px #6b62ff35}.brand-copy{display:flex;flex-direction:column;gap:3px}.brand-copy strong{font:800 15px Manrope;letter-spacing:.2px}.brand-copy span,.mini-label{font-size:9px;letter-spacing:1.8px;color:#9aabcc;font-weight:700}.top-right{margin-left:auto;display:flex;gap:12px;align-items:center}.wrap{max-width:1440px;margin:auto;padding:36px 28px 28px}.auth-layout{min-height:calc(100vh - 150px);display:grid;grid-template-columns:1.1fr .9fr;gap:8%;align-items:center;max-width:1150px;margin:auto}.hero{padding:35px 0}.eyebrow{font-size:10px;letter-spacing:1.5px;color:#aebcda;font-weight:700;display:flex;align-items:center;gap:9px}.dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 12px #4bd6a0}.hero h1,.welcome-line h1{font:800 clamp(36px,4vw,56px)/1.13 Manrope;letter-spacing:-1.7px;margin:24px 0 18px}.hero h1 span{background:linear-gradient(90deg,#a493ff,#57d9e7);background-clip:text;color:transparent}.hero>p{color:#a5b2ce;line-height:1.8;max-width:460px;font-size:15px}.feature-row{display:flex;gap:14px;align-items:center;margin-top:26px}.feature-icon{width:42px;height:42px;border-radius:13px;background:#a18cff18;border:1px solid #a18cff35;color:#a995ff;display:grid;place-items:center;font-size:20px}.feature-row b,.feature-row small{display:block}.feature-row b{font-size:13px}.feature-row small{color:var(--muted);margin-top:5px;font-size:12px}.panel{border:1px solid var(--line);background:linear-gradient(145deg,rgba(22,33,58,.92),rgba(13,21,39,.94));border-radius:20px;box-shadow:0 18px 70px #0002}.login-panel{padding:32px;max-width:460px;width:100%;justify-self:end}.panel-head h2,.section-head h2{font:700 22px Manrope;letter-spacing:-.5px;margin:10px 0 8px}.panel-head p,.section-head p{color:var(--muted);font-size:12px;line-height:1.6;margin:0}.login-panel form{margin-top:27px}label{display:block;font-size:12px;font-weight:600;color:#cbd5eb;margin:17px 0 8px}input:not([type=checkbox]):not([type=file]),select,textarea{width:100%;border:1px solid #2c3b5b;border-radius:10px;background:#0c1428;color:#f1f5ff;padding:12px 13px;outline:none;font:inherit;min-height:43px;transition:border .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{border-color:#8b77ff!important;box-shadow:0 0 0 3px #8b77ff1c}input::placeholder,textarea::placeholder{color:#687895}.btn{border:1px solid transparent;border-radius:10px;min-height:40px;padding:10px 14px;font:700 12px 'DM Sans';cursor:pointer;transition:transform .15s,filter .15s;display:inline-flex;justify-content:center;align-items:center;gap:12px;color:white}.btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{background:linear-gradient(100deg,#8267f5,#5b79ef);box-shadow:0 6px 20px #6559df2b}.btn-secondary{background:#182540;border-color:#30415f;color:#dce6ff}.btn-ghost{background:transparent;border-color:#2a3855;color:#b9c6e0}.full{width:100%;margin-top:22px}.message{font-size:12px;line-height:1.6;min-height:16px;color:var(--muted)}.message.error{color:#ff8b9b}.message.success{color:#62e1ad}.secure-note{border-top:1px solid var(--line);padding-top:17px;margin-top:16px;font-size:11px;color:#91a0bd;display:flex;gap:8px}.secure-note span{color:var(--green)}.hidden{display:none!important}.status-pill{font-size:10px;font-weight:700;padding:7px 10px;border-radius:99px;border:1px solid #31435f;white-space:nowrap}.status-pill.muted{color:#9aa9c4;background:#19243a}.status-pill.good{color:#62e1ad;background:#12382f;border-color:#235a49}.status-pill.warn{color:#f6c66e;background:#3b2e18;border-color:#5b4824}.welcome-line{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.welcome-line h1{font-size:34px;margin:12px 0 7px;letter-spacing:-1px}.welcome-line p{margin:0;color:var(--muted)}.user-chip{display:flex;gap:11px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:10px 14px;background:#121d33}.avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,#8c72ff,#45cfe1);font-weight:800}.user-chip b,.user-chip small{display:block}.user-chip b{font-size:12px;max-width:210px;overflow:hidden;text-overflow:ellipsis}.user-chip small{font-size:9px;color:#8f9fbe;letter-spacing:1.2px;margin-top:4px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:18px}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:18px 20px;position:relative}.stat-icon{width:31px;height:31px;border-radius:10px;display:grid;place-items:center;font-size:16px;margin-bottom:13px}.purple{background:#8b72ff22;color:#b4a4ff}.amber{background:#f4bb631b;color:var(--amber)}.green{background:#4bd6a01b;color:var(--green)}.stat-card small{display:block;color:#98a8c7;font-size:11px}.stat-card strong{display:block;font:800 26px Manrope;margin-top:4px}.admin-panel{padding:24px;margin-bottom:18px}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.section-head h2{font-size:18px;margin:7px 0}.section-head h3{font:700 15px Manrope;margin:0 0 5px}.role-badge{font-size:9px;letter-spacing:1px;color:#b7a9ff;background:#8b72ff1b;border:1px solid #8b72ff45;padding:7px 10px;border-radius:7px}.import-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0 24px}.drop-zone,.assign-box{border:1px dashed #354767;background:#0d172b;border-radius:13px;padding:19px}.upload-icon{width:36px;height:36px;border-radius:10px;background:#8b72ff20;color:#b3a4ff;display:grid;place-items:center;font-size:22px;margin-bottom:12px}.drop-zone b,.drop-zone small{display:block}.drop-zone small{font-size:11px;color:var(--muted);margin-top:5px}.drop-zone input[type=file]{display:block;margin-top:15px;max-width:100%;font-size:11px;color:#aab8d2}.drop-zone .btn{margin-top:10px}.assign-box label:first-child{margin-top:0}.assign-box .btn{margin-top:15px}.assign-box>small{display:block;color:#8494b4;line-height:1.5;margin-top:10px;font-size:10px}.compact{padding-top:18px;border-top:1px solid var(--line)}.activity-list{margin-top:12px;display:grid;gap:7px}.activity-item{display:flex;justify-content:space-between;gap:12px;background:#0d1729;padding:11px 13px;border-radius:9px;font-size:11px;color:#bdc9e1}.activity-item small{color:#7f90b1;white-space:nowrap}.work-layout{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.5fr);gap:18px;align-items:start}.records-panel,.entry-panel{padding:22px;min-height:300px}.record-list{display:grid;gap:8px;margin-top:18px}.record-item{width:100%;text-align:left;background:#0d1729;border:1px solid #253450;border-radius:11px;padding:13px;color:var(--text);cursor:pointer}.record-item.active{border-color:#8b72ff;background:#211c42;box-shadow:inset 3px 0 #9b88ff}.record-item-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.record-item b{font-size:12px;overflow-wrap:anywhere}.record-item p{margin:7px 0 0;color:#92a2c1;font-size:11px;line-height:1.5}.tag{font-size:9px;padding:5px 7px;border-radius:6px;background:#29334a;color:#b4c1d9;white-space:nowrap}.tag.done{background:#12382f;color:#66dfb0}.entry-panel>.section-head{margin-bottom:17px}.source-box{border:1px solid #2e4160;border-radius:12px;background:#0b1426;padding:15px;margin-bottom:20px}.source-title{display:flex;justify-content:space-between;gap:10px;color:#a6b6d5;font-size:9px;font-weight:800;letter-spacing:1.4px;margin-bottom:13px}.source-title span{color:#e3bd72;letter-spacing:.5px}.source-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.source-field{min-width:0}.source-field small{display:block;font-size:10px;color:#7f91b2;margin-bottom:5px}.source-field div{font-size:12px;line-height:1.5;overflow-wrap:anywhere;color:#dbe5f7;white-space:pre-wrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 13px}.field.full-width{grid-column:1/-1}.field label{margin-top:9px}.field input,.field textarea,.field select{font-size:12px}.field textarea{resize:vertical;min-height:78px}.checkline{display:flex;align-items:flex-start;gap:9px;margin:20px 0;color:#a9b8d2;font-size:11px;line-height:1.5}.checkline input{margin-top:2px;accent-color:#8b72ff}.form-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:16px}.empty,.empty-state{color:#8192b2;font-size:12px;line-height:1.7}.empty-state{text-align:center;padding:45px 10px}.empty-art{width:48px;height:48px;border-radius:15px;background:#8b72ff18;color:#b5a4ff;display:grid;place-items:center;font-size:23px;margin:0 auto 13px}.empty-state b{color:#c8d4ea}.empty-state p{margin:7px 0}.notice{border:1px solid #805f24;background:#332812;padding:16px;border-radius:12px;margin-bottom:20px}.notice p{margin-bottom:0;color:#e6d1a8}.notice code{color:#f5dba0}footer{padding:26px 0 4px;text-align:center;color:#657795;font-size:10px}footer span{color:#8c72ff;margin:0 6px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#1c2943;border:1px solid #405475;border-radius:10px;padding:12px 18px;color:#e9f0ff;font-size:12px;transition:.25s;z-index:10;max-width:90vw}.toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:900px){.auth-layout{gap:35px}.hero h1{font-size:42px}.work-layout{grid-template-columns:1fr}.records-panel{min-height:0}.record-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.topbar{height:65px;padding:0 16px}.wrap{padding:22px 14px}.auth-layout{display:flex;flex-direction:column;align-items:stretch;gap:18px}.hero{padding:12px 0 0}.hero h1{font-size:38px;margin:18px 0 12px}.hero>p{font-size:13px}.feature-row{margin-top:16px}.login-panel{max-width:none;padding:23px}.welcome-line{align-items:flex-start;flex-direction:column}.welcome-line h1{font-size:29px}.user-chip{width:100%}.stats-grid{gap:8px}.stat-card{padding:13px 11px}.stat-card strong{font-size:23px}.stat-card small{font-size:10px}.stat-icon{margin-bottom:9px}.import-grid{grid-template-columns:1fr}.admin-panel,.records-panel,.entry-panel{padding:16px}.record-list{grid-template-columns:1fr}.source-fields,.form-grid{grid-template-columns:1fr}.field.full-width{grid-column:auto}.section-head h2{font-size:16px}.top-right .status-pill{display:none}.form-actions{flex-wrap:wrap}.form-actions .btn{flex:1}.activity-item{flex-direction:column;gap:5px}.activity-item small{white-space:normal}}
.route-link{color:#b8c6e5;text-decoration:none;font-size:12px;font-weight:700;padding:10px 12px;border:1px solid #2a3855;border-radius:10px}.route-link:hover{border-color:#8c72ff;color:#fff}.register-employee-box{border:1px solid #354767;background:#0d172b;border-radius:13px;padding:19px;margin:20px 0}.register-employee-box h3{font:700 15px Manrope;margin:0 0 5px}.register-employee-box p{color:var(--muted);font-size:12px;margin:0 0 12px}.employee-create-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:12px;align-items:end}.employee-create-form label{margin-top:8px}.employee-create-form .btn{margin-bottom:16px}.register-employee-box>small{display:block;color:#8293b3;font-size:10px;line-height:1.5;margin-top:8px}.register-employee-box .message{grid-column:1/-1;margin:0}@media(max-width:900px){.employee-create-form{grid-template-columns:1fr 1fr}.employee-create-form .btn{margin-bottom:0}}@media(max-width:650px){.employee-create-form{grid-template-columns:1fr}.employee-create-form .btn{width:100%}}

/* Employee entry workspace: source data on one side, editable fields on the other. */
.entry-split{display:grid;grid-template-columns:minmax(0,0.92fr) minmax(0,1.08fr);gap:16px;align-items:start;min-width:0}
.entry-split>.source-box{margin:0;min-width:0;background:#f4f6fa;color:#1d2738;border-color:#e1e7f0;border-radius:14px;padding:15px}
.entry-split .source-title{color:#56647a}
.entry-split .source-title span{color:#8b6a22}
.entry-split .source-fields{grid-template-columns:1fr;gap:9px}
.entry-split .source-field{background:#fff;border:1px solid #e8edf5;border-radius:11px;padding:11px 12px}
.entry-split .source-field small{color:#77849a;font-size:10px}
.entry-split .source-field div{color:#263247;font-size:12px}
.entry-split #entryForm{min-width:0}
.entry-split #emptyEntry{grid-column:1/-1}
.entry-panel{min-width:0}
@media(max-width:650px){.entry-split{grid-template-columns:minmax(245px,.92fr) minmax(270px,1.08fr);gap:12px;overflow-x:auto;padding-bottom:8px}.entry-split>.source-box,.entry-split #entryForm{min-width:0}.entry-split .form-grid{grid-template-columns:1fr}.entry-split .field.full-width{grid-column:auto}.entry-split .form-actions{flex-direction:column}.entry-split .form-actions .btn{width:100%}.entry-split .checkline{font-size:10px}}
/* One-field-at-a-time estimate workflow and final review screen. */
.step-controls{background:#f4f6fa;border:1px solid #e1e7f0;border-radius:12px;padding:13px;margin-bottom:14px;color:#263247}.step-top{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#56647a}.step-track{height:5px;background:#dfe5ef;border-radius:99px;overflow:hidden;margin-top:10px}.step-track span{display:block;height:100%;width:6%;background:linear-gradient(90deg,#8b72ff,#38cce0);transition:width .2s}.final-review{border:1px solid #dfe7f2;background:#f4f7fb;color:#263247;border-radius:14px;padding:16px}.final-review h3{margin:8px 0;font-size:19px}.final-review p{font-size:12px;color:#66758d}.review-icon{width:38px;height:38px;border-radius:12px;background:#dff8ed;color:#16885d;display:grid;place-items:center;font-size:22px;font-weight:800}.review-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #e0e7f0;font-size:11px}.review-row span{color:#6c7a90}.review-row b{text-align:right;overflow-wrap:anywhere;max-width:60%}.final-review .checkline{color:#56647a}.entry-split #entryForm{background:#f4f6fa;color:#263247;border:1px solid #e1e7f0;border-radius:14px;padding:14px}.entry-split #entryForm label{color:#56647a}.entry-split #entryForm input:not([type=checkbox]),.entry-split #entryForm textarea{background:#fff;color:#263247;border-color:#dce4ef}.entry-split #entryForm .form-actions{border-color:#e0e7f0}.entry-split #entryForm .message{color:#56647a}
@media(max-width:650px){.entry-split{grid-template-columns:minmax(220px,.9fr) minmax(250px,1.1fr);overflow-x:auto;overscroll-behavior-x:contain}.entry-split>.source-box,.entry-split #entryForm{max-height:70vh;overflow-y:auto}.review-row{align-items:flex-start}}

/* Admin employee tracking */
.employee-management{display:grid;gap:10px;margin:14px 0 22px}.employee-row{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(210px,1.4fr) minmax(160px,1fr);gap:14px;align-items:center;background:#0d1729;border:1px solid #253450;border-radius:12px;padding:14px}.employee-identity,.employee-actions{display:flex;flex-direction:column;gap:6px;min-width:0}.employee-identity b{overflow-wrap:anywhere}.employee-identity small,.employee-actions small,.employee-metrics small{font-size:10px;color:#8fa0bf;overflow-wrap:anywhere}.employee-metrics{display:flex;gap:14px;flex-wrap:wrap}.employee-metrics span{display:flex;flex-direction:column;gap:4px}.employee-metrics b{font:700 18px Manrope}.tag.suspended{background:#4a202b;color:#ff9eac}.employee-actions .btn{align-self:flex-start}
@media(max-width:650px){.employee-row{grid-template-columns:1fr;gap:12px}.employee-metrics{justify-content:space-between}.employee-actions .btn{width:100%}}

.stats-grid.five{grid-template-columns:repeat(5,1fr)}@media(max-width:900px){.stats-grid.five{grid-template-columns:repeat(2,1fr)}}
.entry-split #entryForm .checkline{margin-top:14px}

/* ---- Desktop-friendly employee workspace: whole task fits the screen, Submit always visible ---- */
.submit-bar{position:sticky;bottom:-14px;z-index:5;background:#f4f6fa;border-top:1px solid #e0e7f0;margin:12px -14px -14px;padding:4px 14px 12px;border-radius:0 0 14px 14px;box-shadow:0 -8px 14px #f4f6fa}
.submit-bar .checkline{margin:10px 0}
.submit-bar .form-actions{border-top:0;padding-top:4px}
.submit-bar .message{margin:6px 0 0;font-weight:600}
@media(min-width:901px){
  .stat-icon{display:none}
  .stat-card{padding:12px 18px}.stat-card strong{font-size:22px;margin-top:2px}
  .welcome-line{margin-bottom:14px}.welcome-line h1{font-size:28px;margin:8px 0 4px;letter-spacing:-.6px}
  .stats-grid{margin-bottom:14px}
  .entry-split{align-items:start}
  .entry-split>.source-box,.entry-split #entryForm{max-height:calc(100vh - 290px);min-height:260px;overflow-y:auto}
  .records-panel,.entry-panel{padding:18px}
}
@media(min-width:1500px){.wrap{max-width:1680px}.work-layout{grid-template-columns:minmax(300px,.55fr) minmax(0,1.6fr)}}

/* Security notification overlays */
.security-overlay{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at center,#5b1019 0,#17050a 55%,#05060b 100%);color:#fff;overflow:auto}.security-card{width:min(720px,100%);text-align:center;padding:clamp(24px,5vw,54px);border:2px solid #ff334d;border-radius:24px;background:linear-gradient(145deg,#25101a,#0b0c14);box-shadow:0 0 0 8px #ff334d18,0 0 70px #ff203a35}.security-symbol{font-size:clamp(48px,8vw,88px);line-height:1;margin-bottom:18px;color:#ff455c;text-shadow:0 0 25px #ff1e3c}.security-eyebrow{font-size:11px;letter-spacing:3px;font-weight:900;color:#ff9da9}.security-card h1{font-size:clamp(25px,4vw,42px);line-height:1.1;margin:12px 0 20px;font-weight:900;color:#fff}.security-card p{line-height:1.7;color:#f4dce0}.security-delay{padding:12px;border-radius:10px;background:#ff334d1c;border:1px solid #ff334d66;font-weight:800}.blocked-contact{margin-top:25px;padding-top:18px;border-top:1px solid #ff334d55;font-weight:700}.security-card .btn{max-width:300px;margin:18px auto 0}.security-overlay.hidden{display:none!important}

.security-policy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:12px}.security-policy-grid>div{padding:14px;border:1px solid var(--line);border-radius:12px}.security-policy-grid h4{margin:0 0 12px}.security-policy-grid label{display:block;margin:10px 0 6px}.security-policy-grid select{width:100%}@media(max-width:700px){.security-policy-grid{grid-template-columns:1fr}}

/* Employee workspace: prevent selecting/copying rendered page text. This is a browser-side deterrent, not DRM. */
body[data-portal="employee"], body[data-portal="employee"] * { -webkit-user-select: none !important; user-select: none !important; -webkit-touch-callout: none !important; }
body[data-portal="employee"] input, body[data-portal="employee"] textarea, body[data-portal="employee"] select, body[data-portal="employee"] button { -webkit-user-select: none !important; user-select: none !important; }
body[data-portal="employee"] *::selection { background: transparent !important; color: inherit !important; }
