:root {
  color-scheme: light;
  --ink: #14231d;
  --muted: #64736c;
  --paper: #f4f6f2;
  --surface: #ffffff;
  --brand: #1f7858;
  --brand-dark: #0d4c37;
  --mint: #cfe9dc;
  --line: #dce4df;
  --danger: #b42318;
  --shadow: 0 24px 70px rgba(17, 42, 31, .13);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: var(--paper); color: var(--ink); }
button, input { font: inherit; }
.auth-layout { min-height: 100vh; display: grid; grid-template-columns: minmax(360px, 1.05fr) minmax(420px, .95fr); }
.brand-panel { position: relative; overflow: hidden; padding: clamp(40px, 7vw, 104px); color: #fff; background: var(--brand-dark); display: flex; flex-direction: column; justify-content: space-between; gap: 72px; }
.brand-panel::after { content: ""; position: absolute; right: -180px; bottom: -220px; width: 560px; height: 560px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, rgba(207,233,220,.38), rgba(31,120,88,.06) 62%); }
.brand-mark { width: 60px; height: 60px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.3); border-radius: 18px; background: rgba(255,255,255,.1); font-weight: 850; letter-spacing: -.05em; }
.eyebrow { margin: 0 0 13px; color: var(--brand); text-transform: uppercase; letter-spacing: .14em; font-size: .72rem; font-weight: 850; }
.brand-panel .eyebrow { color: #9ed1b8; }
h1 { max-width: 710px; margin: 0; font-size: clamp(3rem, 6vw, 6rem); line-height: .97; letter-spacing: -.065em; }
.brand-copy { max-width: 620px; margin: 28px 0 0; color: #d7e3dc; font-size: 1.12rem; line-height: 1.7; }
.trust-note { z-index: 1; display: flex; align-items: center; gap: 10px; color: #bdd0c6; font-size: .9rem; }
.trust-note span { width: 9px; height: 9px; border-radius: 50%; background: #6ed59f; box-shadow: 0 0 0 5px rgba(110,213,159,.12); }
.login-panel { padding: 32px; display: grid; place-items: center; }
.login-card { width: min(470px, 100%); padding: clamp(30px, 5vw, 54px); border: 1px solid var(--line); border-radius: 28px; background: var(--surface); box-shadow: var(--shadow); }
h2 { margin: 0; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.05; letter-spacing: -.045em; }
.muted { color: var(--muted); line-height: 1.65; }
form { display: grid; gap: 17px; margin-top: 30px; }
label { display: grid; gap: 7px; font-size: .88rem; font-weight: 750; }
input { width: 100%; padding: 14px 15px; border: 1px solid #cbd6cf; border-radius: 12px; background: #fbfcfa; color: var(--ink); outline: none; }
input:focus { border-color: var(--brand); box-shadow: 0 0 0 4px rgba(31,120,88,.12); }
button { min-height: 50px; border: 0; border-radius: 13px; background: var(--brand); color: #fff; font-weight: 800; cursor: pointer; }
button:hover { background: #176647; }
button:disabled { opacity: .6; cursor: wait; }
.form-error { margin: 0; color: var(--danger); font-size: .9rem; }
.security-copy { margin: 24px 0 0; padding-top: 20px; border-top: 1px solid var(--line); color: var(--muted); font-size: .79rem; line-height: 1.55; }
@media (max-width: 850px) {
  .auth-layout { grid-template-columns: 1fr; }
  .brand-panel { min-height: 42vh; padding: 34px 26px; gap: 40px; }
  h1 { font-size: clamp(2.5rem, 12vw, 4.2rem); }
  .brand-copy { margin-top: 18px; }
  .login-panel { padding: 22px 16px 42px; }
}

/* Authenticated operator workspace */
.portal-body{background:#eef2ee;overflow:hidden}.portal-shell{height:100vh;display:grid;grid-template-columns:258px 1fr}.sidebar{display:flex;flex-direction:column;padding:25px 17px 17px;background:#102d22;color:#e8f2ed}.portal-brand{display:flex;align-items:center;gap:12px;padding:0 8px 26px;color:#fff;text-decoration:none;font-weight:850;line-height:1.05}.portal-brand>span{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#d5ecdf;color:#124b37;font-size:.74rem}.portal-brand small{display:block;margin-top:5px;color:#95b6a6;font-size:.68rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.sidebar nav{display:grid;gap:4px}.sidebar nav button{display:grid;grid-template-columns:27px 1fr;align-items:center;min-height:46px;padding:0 12px;text-align:left;border-radius:11px;background:transparent;color:#b9cec4;font-size:.9rem;font-weight:700}.sidebar nav button i{font-style:normal;color:#648978;font-size:.67rem}.sidebar nav button:hover,.sidebar nav button.active{background:rgba(255,255,255,.09);color:#fff}.sidebar-foot{margin-top:auto;display:grid;grid-template-columns:36px 1fr 32px;align-items:center;gap:9px;padding:15px 7px 2px;border-top:1px solid rgba(255,255,255,.1)}.operator-avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#d5ecdf;color:#124b37;font-weight:900}.sidebar-foot strong,.sidebar-foot small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-foot strong{font-size:.78rem}.sidebar-foot small{margin-top:3px;color:#87a99a;font-size:.67rem}.sidebar-foot button{min-height:30px;padding:0;background:transparent;color:#9cb7aa;font-size:1.1rem}.portal-main{min-width:0;overflow:auto}.portal-header{position:sticky;top:0;z-index:5;min-height:106px;display:flex;align-items:center;gap:18px;padding:22px clamp(22px,4vw,54px);border-bottom:1px solid #d7e0da;background:rgba(238,242,238,.9);backdrop-filter:blur(18px)}.portal-header h1{margin:0;font-size:clamp(1.8rem,3vw,2.7rem);line-height:1;letter-spacing:-.045em}.portal-header .eyebrow{margin-bottom:7px}.header-actions{margin-left:auto;display:flex;align-items:center;gap:11px}.system-pill{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid #d5dfd9;border-radius:999px;background:#fff;color:#496158;font-size:.75rem;font-weight:750}.system-pill b{width:7px;height:7px;border-radius:50%;background:#27a96d;box-shadow:0 0 0 4px rgba(39,169,109,.12)}.primary,.secondary,.danger-button,.ghost-button{padding:11px 15px;border-radius:11px;font-size:.83rem}.primary{background:var(--brand);color:#fff}.secondary{border:1px solid #bfd0c6;background:#fff;color:var(--ink)}.ghost-button{background:#edf2ee;color:var(--ink)}.danger-button{background:#fff0ee;color:#a5261e}.compact{min-height:40px}.menu-toggle{display:none;min-height:38px;width:38px;padding:0;background:#fff;color:var(--ink);border:1px solid var(--line)}.portal-view{padding:30px clamp(22px,4vw,54px) 70px}.page-loading{min-height:360px;display:grid;place-items:center;align-content:center;gap:14px;color:var(--muted)}.page-loading span{width:30px;height:30px;border:3px solid #cfe2d8;border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px}.metric{min-height:154px;padding:21px;border:1px solid var(--line);border-radius:19px;background:#fff}.metric small{display:block;color:var(--muted);font-size:.74rem;font-weight:700}.metric strong{display:block;margin-top:23px;font-size:2.45rem;line-height:1;letter-spacing:-.055em}.metric em{display:block;margin-top:11px;color:var(--brand);font-size:.75rem;font-style:normal}.workspace-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:17px;margin-top:18px}.panel{border:1px solid var(--line);border-radius:20px;background:#fff;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 21px;border-bottom:1px solid #e5ebe7}.panel-head h2{font-size:1.05rem;letter-spacing:-.02em}.panel-head p{margin:4px 0 0;color:var(--muted);font-size:.75rem}.panel-body{padding:20px 21px}.bar-chart{height:220px;display:flex;align-items:end;gap:13px}.bar-column{min-width:34px;flex:1;display:grid;justify-items:center;gap:8px}.bar-column div{width:min(44px,75%);min-height:8px;border-radius:9px 9px 3px 3px;background:linear-gradient(180deg,#4da77e,#1f7858)}.bar-column small{color:var(--muted);font-size:.68rem}.task-list,.activity-list{display:grid;gap:9px}.task-row,.activity-row{display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:start;padding:12px;border-radius:12px;background:#f5f7f4}.task-row>span{width:8px;height:8px;margin-top:4px;border-radius:50%;background:#d99b27}.task-row strong,.activity-row strong{display:block;font-size:.82rem}.task-row small,.activity-row small{display:block;margin-top:4px;color:var(--muted);font-size:.7rem}.empty{padding:42px 20px;text-align:center;color:var(--muted)}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:17px}.toolbar input,.toolbar select{max-width:340px}.toolbar .spacer{flex:1}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:17px;background:#fff}.data-table{width:100%;border-collapse:collapse;font-size:.83rem}.data-table th{padding:13px 15px;background:#f7f9f7;color:#6b7a73;text-align:left;font-size:.67rem;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.data-table td{padding:15px;border-top:1px solid #e8edea;vertical-align:middle}.data-table tbody tr{cursor:pointer}.data-table tbody tr:hover{background:#f6faf7}.data-table strong{display:block}.data-table small{display:block;margin-top:4px;color:var(--muted)}.badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#edf3ef;color:#456158;font-size:.68rem;font-weight:800;white-space:nowrap}.badge.green{background:#ddf3e6;color:#17633f}.badge.amber{background:#fff1d6;color:#8a5a06}.badge.red{background:#fde5e2;color:#9b2d24}.badge.blue{background:#e3edfb;color:#24558f}.badge.gray{background:#ecefed;color:#627069}.pipeline{display:grid;grid-template-columns:repeat(5,minmax(210px,1fr));gap:12px;overflow:auto;padding-bottom:12px}.pipeline-column{min-height:460px;padding:12px;border:1px solid var(--line);border-radius:17px;background:#f5f7f4}.pipeline-title{display:flex;align-items:center;justify-content:space-between;padding:5px 4px 13px;font-size:.79rem;font-weight:850}.pipeline-title span{display:grid;place-items:center;min-width:23px;height:23px;border-radius:999px;background:#e1e8e3;color:#54675e;font-size:.66rem}.deal-card{padding:14px;margin-bottom:9px;border:1px solid #dbe4de;border-radius:13px;background:#fff;cursor:pointer}.deal-card:hover{border-color:#9fc4b1;box-shadow:0 8px 24px rgba(22,64,46,.08)}.deal-card strong{display:block;font-size:.84rem}.deal-card small{display:block;margin-top:6px;color:var(--muted);font-size:.69rem}.deal-meta{display:flex;justify-content:space-between;margin-top:13px;color:#315b49;font-size:.67rem;font-weight:750}.handbook-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:17px;min-height:620px}.handbook-list{border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden}.handbook-search{padding:13px;border-bottom:1px solid var(--line)}.handbook-search input{margin:0}.article-link{width:100%;min-height:auto;padding:14px 15px;border-radius:0;border-bottom:1px solid #edf0ee;background:#fff;color:var(--ink);text-align:left}.article-link:hover,.article-link.active{background:#edf6f1}.article-link strong{display:block;font-size:.79rem}.article-link small{display:block;margin-top:5px;color:var(--muted);font-size:.66rem}.article-view{padding:clamp(24px,4vw,48px);border:1px solid var(--line);border-radius:18px;background:#fff}.article-view h2{max-width:750px;font-size:clamp(2rem,4vw,3.5rem)}.article-summary{max-width:780px;color:var(--muted);font-size:1.03rem;line-height:1.65}.article-content{max-width:800px;margin-top:30px;padding-top:26px;border-top:1px solid var(--line);white-space:pre-wrap;line-height:1.75}.article-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}dialog{width:min(760px,calc(100% - 28px));max-height:90vh;padding:0;border:0;border-radius:23px;background:#fff;color:var(--ink);box-shadow:0 40px 110px rgba(10,36,25,.32)}dialog::backdrop{background:rgba(8,30,21,.58);backdrop-filter:blur(5px)}.dialog-head{position:sticky;top:0;z-index:2;display:flex;align-items:start;justify-content:space-between;padding:23px 25px 18px;border-bottom:1px solid var(--line);background:#fff}.dialog-head h2{font-size:1.65rem}.icon-button{min-height:38px;width:38px;padding:0;border-radius:11px;background:#eff3f0;color:var(--ink);font-size:1.3rem}.dialog-body,#modal-body{padding:24px 25px 28px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid .full{grid-column:1/-1}.form-grid label{font-size:.79rem}.form-grid select,.form-grid textarea{width:100%;padding:13px;border:1px solid #cbd6cf;border-radius:11px;background:#fbfcfa;color:var(--ink);font:inherit}.form-grid textarea{min-height:110px;resize:vertical}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:9px;margin-top:8px;padding-top:18px;border-top:1px solid var(--line)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:22px}.detail-item{padding:13px;border-radius:12px;background:#f4f7f4}.detail-item small,.credential-box small{display:block;color:var(--muted);font-size:.67rem;text-transform:uppercase;letter-spacing:.07em}.detail-item strong{display:block;margin-top:5px;font-size:.84rem}.section-title{margin:26px 0 11px;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#52665d}.teacher-card{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px}.teacher-card>div{flex:1}.teacher-card strong,.teacher-card small{display:block}.teacher-card small{margin-top:4px;color:var(--muted);font-size:.7rem}.teacher-card .actions{display:flex;gap:6px}.teacher-card button{min-height:34px;padding:7px 9px}.danger-zone{margin-top:25px;padding:18px;border:1px solid #efc9c4;border-radius:15px;background:#fff8f7}.danger-zone h3{margin:0 0 7px;color:#8f261e;font-size:.95rem}.danger-zone p{color:#80615d;font-size:.78rem;line-height:1.55}.credential-box{margin:14px 0;padding:15px;border-radius:13px;background:#122e23;color:#fff;word-break:break-all}.credential-box strong{display:block;margin-top:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}.credential-box small{color:#9db7ab}#toast{position:fixed;right:22px;bottom:22px;z-index:30;max-width:420px;padding:14px 17px;border-radius:12px;background:#163e2e;color:#fff;box-shadow:0 18px 50px rgba(11,40,28,.24);font-size:.82rem;font-weight:700}.callout{padding:14px;border-radius:12px;background:#edf6f1;color:#315b49;font-size:.78rem;line-height:1.55}.callout.warning{background:#fff3dd;color:#76500b}.callout.danger{background:#fff0ee;color:#8f2b22}@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.workspace-grid{grid-template-columns:1fr}.pipeline{grid-template-columns:repeat(5,240px)}}@media(max-width:820px){.portal-shell{display:block}.sidebar{position:fixed;inset:0 auto 0 0;z-index:20;width:258px;transform:translateX(-100%);transition:transform .2s ease}.sidebar.open{transform:translateX(0)}.portal-header{min-height:88px;padding:17px}.menu-toggle{display:block}.system-pill{display:none}.portal-view{padding:20px 16px 60px}.metric-grid{grid-template-columns:1fr 1fr}.handbook-layout{grid-template-columns:1fr}.handbook-list{max-height:320px}.form-grid,.detail-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}@media(max-width:500px){.metric-grid{grid-template-columns:1fr}.header-actions .primary{font-size:0}.header-actions .primary::after{content:"+";font-size:1.2rem}.portal-header h1{font-size:1.8rem}}
