:root{
  --brand-navy:#203571;
  --brand-navy-950:#14234d;
  --brand-navy-900:#182a5a;
  --brand-navy-800:#273f82;
  --brand-navy-100:#e9edf8;
  --brand-teal:#43a6aa;
  --brand-teal-700:#2f8589;
  --brand-teal-100:#e7f5f5;
  --bg:#f5f7fb;
  --surface:#ffffff;
  --surface-soft:#f9fbfd;
  --surface-tint:#f2f6fb;
  --ink:#182238;
  --ink-soft:#344158;
  --muted:#69758a;
  --muted-2:#8a95a7;
  --line:#e1e6ef;
  --line-strong:#ccd5e2;
  --ok:#1f7753;
  --ok-bg:#e9f6ef;
  --warn:#9a670d;
  --warn-bg:#fff5de;
  --bad:#a23d47;
  --bad-bg:#fcedef;
  --info:#2f64a8;
  --info-bg:#ebf2fb;
  --shadow-xs:0 1px 2px rgba(24,34,56,.04);
  --shadow-sm:0 6px 18px rgba(24,34,56,.055);
  --shadow-md:0 18px 48px rgba(24,34,56,.09);
  --shadow-lg:0 28px 70px rgba(18,32,69,.14);
  --radius-xs:8px;
  --radius-sm:11px;
  --radius:16px;
  --radius-lg:24px;
  --sidebar:276px;
  --topbar:74px;
}

*{box-sizing:border-box}
html{min-height:100%;background:var(--bg);scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:linear-gradient(180deg,#f8fafd 0,#f5f7fb 35%,#f3f6fa 100%);color:var(--ink);font:15px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--brand-navy);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--brand-teal-700)}
button,input,select,textarea{font:inherit}
button{appearance:none}
::selection{background:rgba(67,166,170,.22);color:var(--ink)}

/* ---------- Brand ---------- */
.brand-lockup,.public-brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand-mark{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;position:relative;overflow:hidden;background:linear-gradient(145deg,#fff 0,#f4f7fb 100%);color:var(--brand-navy);border:1px solid rgba(255,255,255,.68);box-shadow:0 8px 22px rgba(10,22,52,.16)}
.brand-mark::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--brand-teal)}
.brand-mark span{font-size:13px;font-weight:900;letter-spacing:.075em}
.brand-copy{min-width:0}
.brand-copy strong,.public-brand strong{display:block;color:inherit;font-size:15px;line-height:1.2;font-weight:800;letter-spacing:-.01em}
.brand-copy span,.public-brand span{display:block;margin-top:3px;color:inherit;opacity:.63;font-size:10.5px;line-height:1.2;letter-spacing:.015em}
.brand-rail{height:2px;width:76px;margin:15px 0 0 56px;border-radius:999px;background:linear-gradient(90deg,var(--brand-teal),rgba(67,166,170,0))}

/* ---------- Application shell ---------- */
.app-shell{min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);display:flex;flex-direction:column;z-index:50;color:#fff;background:linear-gradient(180deg,var(--brand-navy-950) 0%,var(--brand-navy-900) 58%,#1d356d 100%);border-right:1px solid rgba(255,255,255,.06);box-shadow:10px 0 35px rgba(20,35,77,.09)}
.sidebar::before{content:"";position:absolute;inset:auto -70px 55px auto;width:190px;height:190px;border:36px solid rgba(67,166,170,.075);border-radius:50%;pointer-events:none}
.sidebar-brand{padding:24px 22px 18px;border-bottom:1px solid rgba(255,255,255,.085);position:relative;z-index:1}
.sidebar-scroll{padding:16px 13px 22px;overflow:auto;flex:1;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.16) transparent;position:relative;z-index:1}
.nav-group+.nav-group{margin-top:10px}
.nav-group-label{padding:9px 11px 7px;color:rgba(255,255,255,.42);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.145em}
.side-nav{display:flex;flex-direction:column;gap:4px}
.side-nav a{position:relative;display:flex;align-items:center;gap:11px;min-height:44px;padding:8px 10px;border-radius:11px;color:rgba(255,255,255,.74);text-decoration:none;font-size:13px;font-weight:610;transition:background .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease}
.side-nav a:hover{color:#fff;background:rgba(255,255,255,.075)}
.side-nav a.active{color:#fff;background:linear-gradient(90deg,rgba(67,166,170,.23),rgba(255,255,255,.08));box-shadow:inset 0 0 0 1px rgba(255,255,255,.075)}
.side-nav a.active::before{content:"";position:absolute;left:-13px;top:10px;bottom:10px;width:3px;border-radius:0 4px 4px 0;background:var(--brand-teal);box-shadow:0 0 14px rgba(67,166,170,.45)}
.nav-icon{width:28px;height:28px;display:grid;place-items:center;flex:0 0 28px;border-radius:8px;background:rgba(255,255,255,.055);color:rgba(255,255,255,.7);transition:background .16s ease,color .16s ease}
.nav-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.side-nav a:first-child .nav-icon svg path:first-child{vector-effect:non-scaling-stroke}
.side-nav a.active .nav-icon{background:rgba(67,166,170,.2);color:#88d1d4}
.nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.sidebar-foot{padding:14px 14px 15px;border-top:1px solid rgba(255,255,255,.085);position:relative;z-index:1;background:rgba(9,20,47,.08)}
.sidebar-user{display:flex;align-items:flex-start;gap:10px;padding:10px;border-radius:13px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.06)}
.sidebar-avatar{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:0 0 34px;background:rgba(67,166,170,.19);color:#9cdadd;font-size:11px;font-weight:850;letter-spacing:.04em}
.sidebar-user-copy{min-width:0;flex:1}
.sidebar-user strong{display:block;color:#fff;font-size:12px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-user span{display:block;margin-top:2px;color:rgba(255,255,255,.56);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-scope{color:rgba(137,210,213,.72)!important}
.sidebar-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;padding:0 3px;color:rgba(255,255,255,.4);font-size:9.5px}
.sidebar-links{display:flex;gap:10px}
.sidebar-meta a{color:rgba(255,255,255,.68);text-decoration:none;font-weight:650}
.sidebar-meta a:hover{color:#fff}

.workspace{min-height:100vh;margin-left:var(--sidebar);display:flex;flex-direction:column}
.workspace-topbar{height:var(--topbar);position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 34px;background:rgba(248,250,253,.88);backdrop-filter:saturate(170%) blur(18px);border-bottom:1px solid rgba(213,220,231,.9)}
.workspace-context{min-width:0}
.workspace-context .context-kicker{display:block;color:var(--muted-2);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.135em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.workspace-context strong{display:block;margin-top:3px;max-width:50vw;color:var(--ink);font-size:16px;line-height:1.2;font-weight:760;letter-spacing:-.015em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.workspace-tools{display:flex;align-items:center;gap:10px}
.topbar-scope{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.8);box-shadow:var(--shadow-xs)}
.topbar-scope span{color:var(--muted-2);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.topbar-scope strong{max-width:210px;color:var(--brand-teal-700);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-chip{display:flex;align-items:center;gap:9px;padding:6px 10px 6px 6px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.92);box-shadow:var(--shadow-xs)}
.user-avatar{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,var(--brand-navy-100),var(--brand-teal-100));color:var(--brand-navy);font-size:11px;font-weight:850;letter-spacing:.035em}
.user-chip-copy strong{display:block;color:var(--ink);font-size:11.5px;line-height:1.2}
.user-chip-copy span{display:block;margin-top:3px;color:var(--muted);font-size:9.5px;line-height:1.2}

.container{width:min(100%,1480px);margin:0 auto;padding:30px 34px 42px}
.content-frame{position:relative}
.content-frame::before{content:"";position:absolute;z-index:-1;top:-14px;right:-18px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(67,166,170,.06),rgba(67,166,170,0) 68%);pointer-events:none}
.content-footer{margin-top:auto;padding:18px 34px 24px;color:var(--muted-2);font-size:10px;display:flex;justify-content:space-between;gap:16px}
.content-footer strong{color:var(--muted);font-weight:700}

/* ---------- Mobile navigation ---------- */
.mobile-header,.mobile-drawer,.mobile-overlay{display:none}

/* ---------- Typography ---------- */
h1,h2,h3{color:var(--ink);letter-spacing:-.026em}
h1{margin:0 0 18px;font-size:clamp(27px,3vw,36px);line-height:1.1;font-weight:790}
h2{margin:0 0 13px;font-size:20px;line-height:1.25;font-weight:750}
h3{margin:0 0 8px;font-size:15.5px;line-height:1.35;font-weight:730}
p{margin:0 0 14px}
.muted{color:var(--muted)!important}
.page-intro{max-width:760px;margin-top:-10px;margin-bottom:21px;color:var(--muted);font-size:13.5px}
code{padding:3px 6px;border:1px solid #e3e8ef;border-radius:7px;background:#f4f6f9;color:#33425a;font-size:.9em}

/* ---------- Cards & layout ---------- */
.grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.card{background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:var(--radius);padding:21px;box-shadow:var(--shadow-xs);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.card>h2:first-child,.card>h3:first-child{margin-top:0}
.card:hover{border-color:#d5dce7}
.metric{position:relative;overflow:hidden;min-height:125px;padding:19px 19px 18px;background:linear-gradient(145deg,#fff 0%,#fbfcfe 100%)}
.metric::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--brand-teal),rgba(67,166,170,.12))}
.metric::after{content:"";position:absolute;right:-32px;bottom:-54px;width:110px;height:110px;border:22px solid rgba(67,166,170,.08);border-radius:50%}
.metric strong{position:relative;z-index:1;display:block;color:var(--brand-navy);font-size:34px;line-height:1;font-weight:820;letter-spacing:-.045em}
.metric span{position:relative;z-index:1;display:block;margin-top:11px;color:var(--muted);font-size:12.5px;font-weight:610;line-height:1.3}
.metric:nth-child(2)::before{background:linear-gradient(90deg,#4e6cae,rgba(78,108,174,.1))}
.metric:nth-child(2)::after{border-color:rgba(47,100,168,.08)}
.metric:nth-child(3)::before{background:linear-gradient(90deg,#b58a37,rgba(181,138,55,.1))}
.metric:nth-child(3)::after{border-color:rgba(181,138,55,.08)}
.metric:nth-child(4)::before{background:linear-gradient(90deg,#7c69a7,rgba(124,105,167,.1))}
.metric:nth-child(4)::after{border-color:rgba(124,105,167,.075)}
.metric:nth-child(5)::before{background:linear-gradient(90deg,#4d7c6a,rgba(77,124,106,.1))}
.metric:nth-child(5)::after{border-color:rgba(77,124,106,.075)}
.metric-alert{border-color:#eccfd3;background:linear-gradient(145deg,#fff 0%,#fff8f9 100%)}
.metric-alert::before{background:linear-gradient(90deg,#c6535e,rgba(198,83,94,.1))}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:28px 0 13px}
.section-head:first-child{margin-top:0}
.section-head h1,.section-head h2{margin:0}
.section-head>div>p:last-child{margin-bottom:0}
.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* ---------- Tables ---------- */
.table-wrap{overflow:auto;background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-xs)}
table{width:100%;min-width:700px;border-collapse:separate;border-spacing:0;background:transparent}
th,td{text-align:left;padding:13px 15px;border-bottom:1px solid #e8ecf2;vertical-align:middle}
th{position:sticky;top:0;z-index:1;background:#f8fafc;color:#778297;font-size:9.5px;font-weight:850;text-transform:uppercase;letter-spacing:.085em;white-space:nowrap}
th:first-child{border-radius:var(--radius) 0 0 0}
th:last-child{border-radius:0 var(--radius) 0 0}
tbody tr:last-child td{border-bottom:0}
tbody tr{transition:background .12s ease}
tbody tr:hover{background:#fafcfe}
td{color:#435067;font-size:13px}
td strong{color:var(--ink);font-weight:720}
td .muted{margin-top:2px;font-size:11.5px}
td form{margin:0}
td button{white-space:nowrap}
.row-overdue{background:#fff8f9}
.row-overdue:hover{background:#fff4f5!important}
.row-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.row-actions form{margin:0}
.row-actions .button,.row-actions button{min-height:34px;padding:6px 10px;font-size:11px}

/* ---------- Badges ---------- */
.badge{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:3px 8px;border:1px solid #e2e7ee;border-radius:999px;background:#f3f5f8;color:#5d687b;font-size:10.5px;font-weight:730;line-height:1.2;white-space:nowrap}
.badge::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.75}
.badge.ok{background:var(--ok-bg);color:var(--ok);border-color:#d0eadd}
.badge.warn{background:var(--warn-bg);color:var(--warn);border-color:#f0dfb6}
.badge.bad{background:var(--bad-bg);color:var(--bad);border-color:#efd1d5}

/* ---------- Forms ---------- */
form{margin:0}
form.inline{display:flex;gap:10px;flex-wrap:wrap;align-items:end;padding:12px 13px;background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-xs)}
form.inline label{margin:0;min-width:220px}
label{display:block;margin:0 0 15px;color:#3a475d;font-size:11.5px;font-weight:730}
input,select,textarea{width:100%;margin-top:6px;padding:10px 11px;border:1px solid var(--line-strong);border-radius:10px;background:#fff;color:var(--ink);outline:none;box-shadow:inset 0 1px 1px rgba(24,34,56,.015);transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}
input,select{min-height:43px}
textarea{min-height:105px;resize:vertical}
input:hover,select:hover,textarea:hover{border-color:#bac6d5}
input:focus,select:focus,textarea:focus{border-color:var(--brand-teal);box-shadow:0 0 0 3px rgba(67,166,170,.12)}
input::placeholder,textarea::placeholder{color:#a0a9b7}
input[type="checkbox"],input[type="radio"]{width:auto;min-height:0;margin:0 7px 0 0;accent-color:var(--brand-navy)}
input[type="file"]{padding:8px;background:var(--surface-soft)}
button,.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:8px 14px;border:1px solid var(--brand-navy);border-radius:10px;background:linear-gradient(180deg,#294484 0%,var(--brand-navy) 100%);color:#fff;text-decoration:none;font:inherit;font-size:12.5px;font-weight:720;cursor:pointer;box-shadow:0 5px 14px rgba(32,53,113,.13);transition:transform .12s ease,box-shadow .12s ease,background .12s ease,border-color .12s ease}
button:hover,.button:hover{background:linear-gradient(180deg,#31508f 0%,#263e7d 100%);border-color:#263e7d;color:#fff;box-shadow:0 7px 18px rgba(32,53,113,.18);transform:translateY(-1px)}
button:active,.button:active{transform:none}
button:focus-visible,.button:focus-visible,a:focus-visible{outline:3px solid rgba(67,166,170,.24);outline-offset:2px}
button:disabled{opacity:.46;cursor:not-allowed;transform:none;box-shadow:none}
.button.secondary,button.secondary{background:#fff;color:var(--brand-navy);border-color:var(--line-strong);box-shadow:var(--shadow-xs)}
.button.secondary:hover,button.secondary:hover{background:#f8fafc;color:var(--brand-navy);border-color:#b8c4d4;box-shadow:var(--shadow-sm)}
.danger-form{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}

/* ---------- Messages ---------- */
.flash,.warning,.error{margin:0 0 18px;padding:13px 15px;border-radius:12px;border:1px solid;font-size:12.5px;box-shadow:var(--shadow-xs)}
.flash{display:flex;align-items:center;gap:10px;background:var(--ok-bg);border-color:#cde7da;color:#256a4d}
.flash-mark{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;flex:0 0 23px;background:#fff;color:var(--ok);font-size:12px;font-weight:900;box-shadow:0 2px 7px rgba(31,119,83,.09)}
.warning{background:var(--warn-bg);border-color:#eddcaf;color:#795616}
.error{background:var(--bad-bg);border-color:#edcbd0;color:#86313a}
.info-note{padding:12px 14px;border:1px solid #d6e9e9;border-left:3px solid var(--brand-teal);border-radius:10px;background:#f4fafa;color:#4d626a;font-size:11.5px}
.quick-date-note{margin-top:14px;padding:11px 13px;border:1px solid #dce4f2;border-radius:10px;background:#f1f5fb;color:#55627a;font-size:11.5px}

/* ---------- Filters ---------- */
.filter-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 16px}
.filter-tabs a{padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:11px;font-weight:720;text-decoration:none;transition:.14s ease}
.filter-tabs a:hover{border-color:#bec9d7;color:var(--brand-navy)}
.filter-tabs a.active{background:var(--brand-navy);border-color:var(--brand-navy);color:#fff;box-shadow:0 4px 12px rgba(32,53,113,.12)}

/* ---------- Scope ---------- */
.scope-banner{min-width:190px;padding:10px 12px;border:1px solid #d6e7e8;border-radius:12px;background:linear-gradient(145deg,#f8fcfc,#f1f8f8);text-align:right}
.scope-banner span{display:block;color:var(--muted-2);font-size:8.5px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.scope-banner strong{display:block;margin-top:3px;color:var(--brand-teal-700);font-size:11.5px}
.scope-pill{display:inline-flex;align-items:center;padding:5px 9px;border:1px solid #dce3f2;border-radius:999px;background:var(--brand-navy-100);color:var(--brand-navy);font-size:10.5px;font-weight:750}
.scope-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft)}
.scope-head .check-line{margin:0;white-space:nowrap}
.scope-head .muted{font-size:10.5px}

/* ---------- Role / network pickers ---------- */
.role-picker,.network-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:8px 0 18px}
.role-option,.network-option{display:flex!important;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#fff;cursor:pointer;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}
.role-option:hover,.network-option:hover{border-color:#bdd3d4;background:#f8fcfc;box-shadow:var(--shadow-xs)}
.role-option input,.network-option input{width:auto!important;margin:0}
.role-option span,.network-option span{display:flex;flex-direction:column;gap:2px;min-width:0}
.role-option strong,.network-option strong{color:var(--brand-navy);font-size:11.5px}
.role-option small,.network-option small{color:var(--muted);font-size:9.5px}
.field-title{display:block;margin-top:14px;font-weight:780}
.check-line{display:flex!important;align-items:center;gap:8px;margin:10px 0 18px}
.check-line input{width:auto!important;margin:0}

/* ---------- User credentials ---------- */
.credential-box{margin:0 0 18px;padding:17px 18px;border:1px solid #dfcb90;border-radius:var(--radius);background:linear-gradient(145deg,#fffdf7,#fff8e8);color:#5f4c18;box-shadow:var(--shadow-xs)}
.credential-box>strong{display:block;margin-bottom:5px;color:#574612}
.credential-box p{margin:0 0 10px}
.credential-box .muted{margin:9px 0 0;color:#806f3c!important}
.credential-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid rgba(89,72,19,.15);border-radius:10px;background:rgba(255,255,255,.76)}
.credential-row span{font-size:11.5px;font-weight:720;overflow-wrap:anywhere}
.credential-row code{padding:6px 9px;background:#fff;border:1px solid rgba(89,72,19,.17);font-size:12.5px;font-weight:820;letter-spacing:.035em;user-select:all}

/* ---------- Progress ---------- */
.progress{height:8px;overflow:hidden;border-radius:999px;background:#edf1f5}
.progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand-navy),var(--brand-teal))}

/* ---------- Public / login ---------- */
.public-shell{min-height:100vh;background:radial-gradient(circle at 8% 10%,rgba(67,166,170,.12),transparent 28%),linear-gradient(145deg,#f7f9fc 0%,#eef3f8 100%)}
.public-topbar{height:76px;display:flex;align-items:center;padding:0 clamp(22px,5vw,72px);border-bottom:1px solid rgba(216,223,233,.85);background:rgba(255,255,255,.72);backdrop-filter:blur(16px)}
.public-brand{color:var(--ink)}
.public-brand .brand-mark{background:linear-gradient(145deg,var(--brand-navy-900),var(--brand-navy));color:#fff;border:0;box-shadow:0 9px 24px rgba(32,53,113,.2)}
.public-main{min-height:calc(100vh - 76px);display:grid;place-items:center;padding:48px 24px}
.auth-layout{width:min(100%,1040px);display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.72fr);overflow:hidden;border:1px solid rgba(214,221,231,.9);border-radius:26px;background:#fff;box-shadow:var(--shadow-lg)}
.auth-intro{position:relative;overflow:hidden;padding:54px 52px;color:#fff;background:linear-gradient(145deg,var(--brand-navy-950),var(--brand-navy) 68%,#315285)}
.auth-intro::before{content:"";position:absolute;right:-95px;bottom:-95px;width:290px;height:290px;border:47px solid rgba(67,166,170,.17);border-radius:50%}
.auth-intro::after{content:"";position:absolute;top:44px;right:42px;width:84px;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--brand-teal),rgba(67,166,170,0))}
.auth-eyebrow{display:inline-flex;padding:5px 9px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(255,255,255,.07);color:#a4dadd;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.12em;position:relative;z-index:1}
.auth-intro h1{max-width:560px;margin:20px 0 16px;color:#fff;font-size:clamp(34px,4.5vw,50px);line-height:1.02;position:relative;z-index:1}
.auth-intro p{max-width:520px;color:rgba(255,255,255,.72);font-size:14px;position:relative;z-index:1}
.auth-points{display:flex;flex-wrap:wrap;gap:8px;margin-top:27px;position:relative;z-index:1}
.auth-points span{padding:7px 10px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.07);color:rgba(255,255,255,.82);font-size:10.5px;font-weight:650}
.auth-card{padding:48px 42px;align-self:center}
.auth-card h2{font-size:25px;margin-bottom:7px}
.auth-card>p{margin-bottom:22px}
.auth-card button{width:100%;margin-top:3px}

/* ---------- Installer ---------- */
.installer-shell{min-height:100vh;display:grid;grid-template-columns:minmax(320px,.78fr) minmax(600px,1.22fr);background:linear-gradient(145deg,var(--brand-navy-950),var(--brand-navy))}
.installer-aside{padding:56px clamp(35px,5vw,72px);color:#fff;display:flex;flex-direction:column;justify-content:space-between;position:sticky;top:0;height:100vh;overflow:hidden}
.installer-aside::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 5%,rgba(67,166,170,.15),transparent 35%);pointer-events:none}
.installer-aside::after{content:"";position:absolute;right:-130px;bottom:-130px;width:360px;height:360px;border:55px solid rgba(67,166,170,.15);border-radius:50%}
.installer-aside .brand-mark{background:#fff;color:var(--brand-navy);position:relative;z-index:1}
.installer-aside h1{color:#fff;font-size:clamp(38px,5vw,57px);margin:27px 0 14px;line-height:1;position:relative;z-index:1}
.installer-aside p{color:rgba(255,255,255,.73);font-size:14px;max-width:510px;position:relative;z-index:1}
.installer-points{margin-top:31px;display:grid;gap:12px;position:relative;z-index:1}
.installer-point{display:flex;align-items:center;gap:11px;color:rgba(255,255,255,.86);font-size:12px}
.installer-point::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--brand-teal);box-shadow:0 0 0 5px rgba(67,166,170,.11)}
.installer-aside-foot{font-size:10px;color:rgba(255,255,255,.45);position:relative;z-index:1}
.installer-stage{min-height:100vh;padding:40px clamp(25px,5vw,72px);background:linear-gradient(180deg,#f8fafc,#f2f5f9);overflow:auto}
.installer-card{width:min(100%,800px);margin:0 auto;padding:32px;background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:22px;box-shadow:0 20px 56px rgba(23,32,51,.09)}
.installer-card h1{font-size:29px;margin-bottom:8px}
.installer-section{padding-top:23px;margin-top:23px;border-top:1px solid var(--line)}
.installer-section:first-of-type{margin-top:18px}
.installer-section h2{font-size:16px;margin-bottom:14px;color:var(--brand-navy)}
.preflight{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0}
.preflight-item{display:flex;align-items:center;gap:8px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);font-size:10.5px;color:var(--muted)}
.preflight-item::before{content:"✓";display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:var(--ok-bg);color:var(--ok);font-weight:900;flex:0 0 19px}
.preflight-item.failed{border-color:#efcbd0;background:var(--bad-bg);color:#812b35}
.preflight-item.failed::before{content:"!";background:var(--bad);color:#fff}
.installer-actions{display:flex;justify-content:flex-end;margin-top:22px}
.installer-actions button{min-width:210px}
.installer-success{min-height:60vh;display:grid;place-items:center;text-align:center}
.installer-success .success-mark{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;margin:0 auto 19px;background:var(--ok-bg);color:var(--ok);font-size:30px;font-weight:850;border:1px solid #cbe7d8;box-shadow:0 12px 28px rgba(31,119,83,.1)}

/* ---------- Responsive ---------- */
@media(max-width:1260px){
  .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:1080px){
  :root{--sidebar:242px}
  .workspace-topbar{padding:0 24px}
  .container{padding:27px 24px 38px}
  .content-footer{padding-left:24px;padding-right:24px}
  .installer-shell{grid-template-columns:1fr}
  .installer-aside{position:relative;height:auto;min-height:330px;padding:42px 35px}
  .installer-stage{min-height:auto;padding:34px 24px 50px}
  .installer-aside-foot{margin-top:35px}
}

@media(max-width:840px){
  body.nav-open{overflow:hidden}
  .sidebar{display:none}
  .workspace{margin-left:0}
  .workspace-topbar{display:none}
  .mobile-header{display:grid;grid-template-columns:42px minmax(0,1fr) 38px;align-items:center;gap:10px;position:sticky;top:0;z-index:44;height:66px;padding:0 14px;background:rgba(248,250,253,.94);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
  .menu-button{width:38px;height:38px;min-height:0;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:var(--shadow-xs)}
  .menu-button span{width:15px;height:1.5px;border-radius:99px;background:var(--brand-navy)}
  .mobile-brand{display:flex;align-items:center;gap:9px;min-width:0}
  .mobile-brand .brand-mark{display:none}
  .mobile-brand strong{display:block;color:var(--ink);font-size:12px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-brand span{display:block;margin-top:2px;color:var(--muted);font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-avatar{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,var(--brand-navy-100),var(--brand-teal-100));color:var(--brand-navy);font-size:10px;font-weight:850}
  .mobile-overlay{display:block;position:fixed;inset:0;z-index:60;background:rgba(9,19,41,.42);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}
  .mobile-drawer{display:flex;position:fixed;inset:0 auto 0 0;z-index:70;width:min(88vw,340px);flex-direction:column;background:linear-gradient(180deg,var(--brand-navy-950),var(--brand-navy-900));color:#fff;box-shadow:var(--shadow-lg);transform:translateX(-102%);transition:transform .23s ease}
  .nav-open .mobile-drawer{transform:translateX(0)}
  .nav-open .mobile-overlay{opacity:1;visibility:visible}
  .mobile-drawer-head{height:72px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 16px;border-bottom:1px solid rgba(255,255,255,.09)}
  .mobile-drawer-head .public-brand{color:#fff}
  .mobile-drawer-head .brand-mark{width:38px;height:38px;box-shadow:none}
  .icon-button{width:35px;height:35px;min-height:0;padding:0;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.06);box-shadow:none;color:#fff;font-size:23px;font-weight:300}
  .icon-button:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.16);box-shadow:none;transform:none}
  .mobile-drawer-nav{flex:1;overflow:auto;padding:12px 13px 20px}
  .mobile-drawer-nav .nav-group+.nav-group{margin-top:8px}
  .mobile-drawer-foot{padding:14px 17px 18px;border-top:1px solid rgba(255,255,255,.09);background:rgba(0,0,0,.06)}
  .mobile-drawer-foot strong{display:block;font-size:12px}
  .mobile-drawer-foot>span{display:block;margin-top:3px;color:rgba(255,255,255,.54);font-size:10px}
  .mobile-drawer-foot div{display:flex;gap:14px;margin-top:10px}
  .mobile-drawer-foot a{color:rgba(255,255,255,.72);font-size:10px;text-decoration:none;font-weight:680}
  .container{padding:22px 15px 31px}
  .content-footer{padding:14px 16px 22px}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-2{grid-template-columns:1fr}
  .section-head{align-items:flex-start}
  .auth-layout{grid-template-columns:1fr;max-width:590px}
  .auth-intro{padding:40px 34px}
  .public-main{padding:32px 17px}
  .topbar-scope{display:none}
}

@media(max-width:600px){
  .grid{gap:10px}
  .metric{min-height:109px;padding:15px}
  .metric strong{font-size:29px}
  .metric span{margin-top:8px;font-size:11px}
  .card{padding:16px;border-radius:13px}
  h1{font-size:26px;margin-bottom:15px}
  h2{font-size:18px}
  .section-head{flex-direction:column;align-items:stretch;margin-top:23px}
  .section-head:first-child{margin-top:0}
  .section-head .button,.section-head button{width:100%}
  .scope-banner{width:100%;text-align:left}
  form.inline{display:grid;grid-template-columns:1fr}
  form.inline label{min-width:0}
  form.inline button{width:100%}
  .role-picker,.network-picker{grid-template-columns:1fr}
  .scope-head{align-items:flex-start;flex-direction:column}
  .row-actions{align-items:stretch}
  .row-actions form,.row-actions .button,.row-actions button{width:100%}
  .credential-row{align-items:flex-start;flex-direction:column}
  .credential-row code{width:100%;overflow:auto}
  .auth-intro{display:none}
  .auth-card{padding:29px 23px}
  .public-topbar{padding:0 17px}
  .preflight{grid-template-columns:1fr}
  .installer-card{padding:21px;border-radius:16px}
  .installer-aside{padding:31px 22px;min-height:300px}
  .installer-stage{padding:18px 12px 32px}
  .installer-actions button{width:100%}
  .content-footer{flex-direction:column;gap:3px}
}

@media(max-width:390px){
  .grid{grid-template-columns:1fr}
}
@media(max-width:840px){
  .mobile-drawer-head .public-brand .brand-mark{background:#fff;color:var(--brand-navy);border-color:rgba(255,255,255,.75)}
}

/* 0.1.5 · strukturierte Spätschicht-Übergabe */
.handover-detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:18px;margin-bottom:18px}.detail-list{display:grid;gap:0;margin:18px 0 0}.detail-list>div{display:grid;grid-template-columns:140px 1fr;gap:16px;padding:11px 0;border-top:1px solid var(--line,#e3e8ef)}.detail-list dt{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.045em;color:var(--muted,#667085)}.detail-list dd{margin:0}.handover-status-actions{margin-top:16px;align-items:center}.handover-notes{display:grid;gap:12px}.handover-note{background:#fff;border:1px solid var(--line,#e3e8ef);border-radius:14px;padding:15px 17px;box-shadow:0 5px 18px rgba(31,53,113,.045)}.handover-note>div{display:flex;justify-content:space-between;gap:16px;align-items:center}.handover-note>div span{font-size:12px;color:var(--muted,#667085)}.handover-note p{margin:9px 0 0;line-height:1.55}.empty-state{padding:22px;border:1px dashed var(--line,#d9e1ea);border-radius:14px;color:var(--muted,#667085);background:rgba(255,255,255,.58)}
@media(max-width:900px){.handover-detail-grid{grid-template-columns:1fr}.detail-list>div{grid-template-columns:110px 1fr}.handover-note>div{align-items:flex-start;flex-direction:column;gap:3px}}

/* 0.2.0 · Freiwünsche, TF-Matrix und Kandidatenworkflow */
.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:20px}.check-card{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fff}.check-card input{width:auto;margin-top:3px}.check-card span{display:flex;flex-direction:column;gap:2px}.check-card small{color:var(--muted)}.matrix-table{max-width:100%;overflow:auto}.matrix-table table{min-width:1180px}.matrix-table th{white-space:nowrap}.stat-card{position:relative;overflow:hidden;min-height:112px;padding:19px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow-xs)}.stat-card strong{display:block;font-size:30px;line-height:1;color:var(--brand-navy);font-weight:850}.stat-card span{display:block;margin-top:10px;color:var(--muted);font-size:12px}.offer-compose{margin-top:18px}.offer-compose textarea{min-height:190px}.row-overdue{background:rgba(188,48,57,.035)}
@media(max-width:900px){.check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.check-grid{grid-template-columns:1fr}.stat-card{min-height:96px}}

/* 0.3.0 Team Chat */
.nav-count{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#42b5b3;color:#10275d;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}.chat-layout{display:grid;grid-template-columns:300px minmax(0,1fr) 240px;min-height:calc(100vh - 185px);background:#fff;border:1px solid var(--line,#dbe2ee);border-radius:18px;overflow:hidden;box-shadow:0 10px 30px rgba(30,52,105,.06)}.chat-list-panel{border-right:1px solid #e5e9f1;background:#f8fafc;min-width:0}.chat-list-head{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 18px 12px}.chat-list-head h1{margin:0;font-size:22px}.chat-search{padding:0 14px 12px}.chat-search input{margin:0}.chat-room-list{overflow:auto;max-height:calc(100vh - 305px);padding:0 8px 12px}.chat-room-link{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:10px;border-radius:12px;color:inherit;text-decoration:none;margin:2px 0}.chat-room-link:hover{background:#eef3f8}.chat-room-link.active{background:#e6f3f4;box-shadow:inset 3px 0 0 #39a7aa}.chat-room-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#fff;border:1px solid #dce4ee;font-weight:800;color:#203571}.chat-room-link span:nth-child(2){min-width:0}.chat-room-link strong,.chat-room-link small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-room-link small{font-size:11px;color:#6d7890;margin-top:2px}.unread-pill{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#203571;color:#fff;font-size:11px;display:grid;place-items:center}.chat-main-panel{display:flex;flex-direction:column;min-width:0;background:#fff}.chat-room-head{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:18px 22px;border-bottom:1px solid #e5e9f1}.chat-room-head h2{margin:2px 0 2px}.chat-room-head p{margin:0}.compact{padding:8px 12px;font-size:13px}.chat-messages{flex:1;overflow:auto;padding:20px 22px;min-height:420px;max-height:calc(100vh - 385px);scroll-behavior:smooth}.chat-message{display:flex;gap:10px;margin:0 0 16px;align-items:flex-start}.chat-message.mine{flex-direction:row-reverse}.chat-avatar{flex:0 0 34px;width:34px;height:34px;border-radius:10px;background:#e7f3f3;color:#176b70;display:grid;place-items:center;font-size:12px;font-weight:800}.chat-bubble{max-width:min(760px,80%);min-width:160px;padding:10px 12px;border-radius:6px 14px 14px 14px;background:#f3f5f8;border:1px solid #e5e9f1}.chat-message.mine .chat-bubble{background:#e9f5f5;border-color:#d1e9e9;border-radius:14px 6px 14px 14px}.chat-message-meta{display:flex;gap:10px;align-items:baseline;margin-bottom:5px}.chat-message-meta strong{font-size:13px}.chat-message-meta span{font-size:10px;color:#7d8799}.chat-message-body{font-size:14px;line-height:1.45;word-break:break-word}.chat-message-actions{display:flex;gap:10px;margin-top:7px;font-size:11px}.chat-message-actions a,.link-button{color:#52627e;text-decoration:none;background:none;border:0;padding:0;font:inherit;cursor:pointer}.inline-form{display:inline}.chat-reply-preview{border-left:3px solid #43a9ac;padding:5px 8px;margin-bottom:7px;background:rgba(255,255,255,.65);font-size:11px;color:#536078}.chat-attachment{display:flex;gap:8px;align-items:center;margin-top:8px;padding:8px 10px;border:1px solid #d9e2ec;border-radius:10px;background:#fff;text-decoration:none;color:#203571;font-size:12px}.chat-attachment span{margin-left:auto;color:#7b8599;font-size:10px}.chat-composer{padding:14px 18px;border-top:1px solid #e5e9f1;background:#fbfcfd}.chat-composer textarea{margin:0;min-height:64px;resize:vertical}.chat-composer-actions{display:flex;align-items:center;gap:10px;margin-top:8px}.chat-composer-actions button{margin-left:auto}.file-button{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #d9e2ec;border-radius:10px;background:#fff;cursor:pointer;font-size:12px;font-weight:700}.file-button input{display:none}.composer-reply{display:flex;justify-content:space-between;gap:10px;padding:7px 10px;border-left:3px solid #43a9ac;background:#eef8f8;margin-bottom:8px;font-size:12px}.composer-reply a{text-decoration:none;color:#203571;font-weight:800}.chat-members-panel{border-left:1px solid #e5e9f1;background:#fbfcfd;padding:18px 14px;overflow:auto}.chat-members-panel h3{margin:0 0 12px}.chat-member{display:flex;gap:9px;align-items:center;padding:8px 4px}.chat-member span:last-child{min-width:0}.chat-member strong,.chat-member small{display:block}.chat-member small{color:#7b8599;font-size:10px}.member-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:340px;overflow:auto;padding:8px;border:1px solid #dde4ec;border-radius:12px}.check-row{display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px;padding:8px;border-radius:10px;background:#f8fafc;margin:0!important}.check-row input{width:auto!important;margin:0!important}.check-row strong,.check-row small{display:block}.check-row small{font-size:10px;color:#748096}.chat-create-card{max-width:900px}.search-hero{display:flex;gap:10px;max-width:800px}.search-hero input{margin:0}.search-results{display:grid;gap:8px;margin-top:16px;max-width:800px}.search-result-card{display:flex;justify-content:space-between;padding:14px;border:1px solid #dde4ec;border-radius:12px;background:#fff;text-decoration:none;color:inherit}.search-result-card span{color:#748096;font-size:12px}.empty-state{padding:30px;text-align:center;color:#778197}.chat-send-failed{color:#a72e2e;font-size:12px;margin-top:6px}
@media(max-width:1180px){.chat-layout{grid-template-columns:260px minmax(0,1fr)}.chat-members-panel{display:none;position:fixed;right:16px;top:90px;bottom:16px;width:280px;z-index:55;box-shadow:0 18px 50px rgba(0,0,0,.18);border-radius:16px}.chat-members-panel.open{display:block}}
@media(max-width:760px){.chat-layout{display:block;min-height:auto}.chat-list-panel{border-right:0;border-bottom:1px solid #e5e9f1}.chat-room-list{display:flex;gap:6px;overflow-x:auto;max-height:none;padding:0 10px 10px}.chat-room-link{min-width:210px}.chat-search{display:none}.chat-main-panel{min-height:65vh}.chat-room-head{padding:14px}.chat-room-head p{display:none}.chat-messages{padding:14px;min-height:360px;max-height:55vh}.chat-bubble{max-width:88%}.chat-composer{padding:10px}.chat-composer-actions .muted{display:none}.member-picker{grid-template-columns:1fr}}

/* 0.3.1 · Topbar Chat & Portal-Benachrichtigungen */
.topbar-action-wrap{position:relative;display:flex;align-items:center}
.topbar-action{position:relative;min-height:40px;height:40px;padding:0 12px;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.92);box-shadow:var(--shadow-xs);color:var(--brand-navy);text-decoration:none;font:inherit;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}
.topbar-action:hover{background:#fff;border-color:#cdd7e4;box-shadow:0 6px 16px rgba(31,53,113,.08);transform:translateY(-1px)}
.topbar-action.active{background:var(--brand-navy);border-color:var(--brand-navy);color:#fff}
.topbar-action-icon{width:20px;height:20px;display:grid;place-items:center}
.topbar-action-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.topbar-action-label{font-size:11px;font-weight:760;white-space:nowrap}
.topbar-counter{position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;border:2px solid #f8fafd;border-radius:999px;background:#e44b5d;color:#fff;font-size:9px;font-weight:850;line-height:1;box-shadow:0 2px 7px rgba(121,29,42,.22)}
.topbar-counter.is-empty{display:none}
.topbar-popover{display:none;position:absolute;z-index:90;top:calc(100% + 10px);right:0;width:min(390px,calc(100vw - 28px));overflow:hidden;border:1px solid #dbe2ec;border-radius:16px;background:#fff;box-shadow:0 20px 60px rgba(22,40,83,.18)}
.topbar-popover.open{display:block}
.topbar-popover-head{min-height:62px;padding:13px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #edf0f4;background:#fbfcfe}
.topbar-popover-head>div{min-width:0}
.topbar-popover-head strong{display:block;color:var(--ink);font-size:13px}
.topbar-popover-head span{display:block;margin-top:2px;color:var(--muted);font-size:10px}
.topbar-popover-head form{margin:0}
.topbar-popover-head button{min-height:0;padding:5px 7px;border:0;background:transparent;box-shadow:none;color:var(--brand-teal-700);font-size:10px;font-weight:760}
.topbar-popover-head button:hover{transform:none;box-shadow:none;background:#eef8f8}
.topbar-popover-list{max-height:390px;overflow:auto}
.topbar-notification{margin:0;border-bottom:1px solid #edf0f4;background:#fff}
.topbar-notification:last-child{border-bottom:0}
.topbar-notification.unread{background:#f5fbfb}
.topbar-notification button{width:100%;min-height:0;padding:12px 14px;display:grid;grid-template-columns:9px minmax(0,1fr);gap:10px;text-align:left;border:0;border-radius:0;background:transparent;box-shadow:none;color:inherit}
.topbar-notification button:hover{transform:none;box-shadow:none;background:rgba(31,53,113,.035)}
.topbar-notification .notification-dot{width:7px;height:7px;margin-top:5px;border-radius:50%;background:#aab4c5}
.topbar-notification.unread .notification-dot{background:var(--brand-teal)}
.topbar-notification.severity-warning .notification-dot{background:#d59b2f}
.topbar-notification.severity-critical .notification-dot{background:#d54b59}
.topbar-notification.severity-success .notification-dot{background:#2d9b68}
.topbar-notification button>span:last-child{min-width:0}
.topbar-notification strong,.topbar-notification small,.topbar-notification time{display:block}
.topbar-notification strong{color:var(--ink);font-size:11.5px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-notification small{margin-top:3px;color:var(--muted);font-size:10px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.topbar-notification time{margin-top:5px;color:var(--muted-2);font-size:9px}
.topbar-empty{padding:28px 18px;text-align:center;color:var(--muted);font-size:11px}
.topbar-popover-footer{display:block;padding:11px 14px;border-top:1px solid #edf0f4;background:#fbfcfe;color:var(--brand-navy);text-align:center;text-decoration:none;font-size:10.5px;font-weight:760}
.topbar-popover-footer:hover{background:#f2f6fa}

.notification-center{padding:0;overflow:hidden}
.notification-item{margin:0;border-bottom:1px solid var(--line);background:#fff}
.notification-item:last-child{border-bottom:0}
.notification-item.unread{background:#f6fbfc}
.notification-item button{width:100%;min-height:0;padding:16px 18px;display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:13px;align-items:start;text-align:left;border:0;border-radius:0;background:transparent;box-shadow:none;color:inherit}
.notification-item button:hover{transform:none;box-shadow:none;background:rgba(31,53,113,.035)}
.notification-item .notification-dot{width:8px;height:8px;margin-top:5px;border-radius:50%;background:#aab4c5}
.notification-item.unread .notification-dot{background:var(--brand-teal)}
.notification-item.severity-warning .notification-dot{background:#d59b2f}
.notification-item.severity-critical .notification-dot{background:#d54b59}
.notification-item.severity-success .notification-dot{background:#2d9b68}
.notification-copy{min-width:0}
.notification-copy strong,.notification-copy span,.notification-copy small{display:block}
.notification-copy strong{font-size:13px;color:var(--ink)}
.notification-copy span{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.4}
.notification-copy small{margin-top:5px;color:var(--muted-2);font-size:10px}
.notification-open{padding-top:3px;color:var(--brand-teal-700);font-size:10.5px;font-weight:760}
.mobile-topbar-tools{display:flex;align-items:center;gap:6px}
.mobile-topbar-tools .topbar-action{width:36px;height:36px;min-height:36px;padding:0;justify-content:center}
.mobile-topbar-tools .topbar-action-label{display:none}
.mobile-topbar-tools .topbar-popover{position:fixed;top:60px;right:10px;left:10px;width:auto}

@media(max-width:1080px){
  .topbar-action-label{display:none}
  .topbar-action{width:40px;padding:0;justify-content:center}
}
@media(max-width:840px){
  .mobile-header{grid-template-columns:42px minmax(0,1fr) auto}
  .mobile-avatar{display:none}
}
@media(max-width:520px){
  .mobile-brand span{display:none}
  .notification-item button{grid-template-columns:9px minmax(0,1fr)}
  .notification-open{display:none}
}

/* 0.3.2 · Chat Administration & Governance */
.admin-tabs{display:flex;gap:5px;margin:0 0 18px;padding:5px;border:1px solid var(--line);border-radius:14px;background:#f5f7fa;overflow-x:auto}
.admin-tabs a{flex:0 0 auto;padding:8px 13px;border-radius:10px;color:var(--muted);font-size:12px;font-weight:760;text-decoration:none;white-space:nowrap}
.admin-tabs a:hover{background:#fff;color:var(--brand-navy)}
.admin-tabs a.active{background:#fff;color:var(--brand-navy);box-shadow:0 3px 10px rgba(31,53,113,.08)}
.filter-bar{display:flex;gap:7px;margin:0 0 14px}
.filter-pill{display:inline-flex;align-items:center;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:11px;font-weight:760;text-decoration:none}
.filter-pill.active{border-color:#a8d5d6;background:#edf8f8;color:var(--brand-teal-700)}
.member-add{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,220px) auto;gap:8px;align-items:end;margin:0 0 16px}
.member-add select,.member-add button{margin:0}
.member-role-form{display:inline-flex;align-items:center;gap:6px}
.member-role-form select{width:auto;min-width:128px;margin:0;padding:7px 30px 7px 9px;font-size:11px}
.danger-zone{margin-top:16px;border-color:#ebd6d8;background:#fffafa}
.switch-row{display:flex!important;flex-direction:row!important;align-items:center!important;gap:10px;margin:12px 0!important;font-weight:700}
.switch-row input{width:auto!important;margin:0!important}
.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:22px}
.info-grid>div{padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
.info-grid span,.info-grid strong{display:block}.info-grid span{color:var(--muted);font-size:10px}.info-grid strong{margin-top:4px;font-size:13px}
.pinned-admin-item{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:12px 0;border-top:1px solid var(--line)}
.pinned-admin-item:first-of-type{border-top:0}.pinned-admin-item p{margin:4px 0;color:var(--ink);font-size:13px}.pinned-admin-item small{color:var(--muted);font-size:10px}
.chat-preferences{padding:0 0 14px;margin:0 0 16px;border-bottom:1px solid #e5e9f1}.chat-preferences label{font-size:11px}.chat-preferences select{margin-top:5px;padding:7px 30px 7px 9px;font-size:11px}.chat-preferences button{margin-top:4px}
.chat-members-panel h3{display:flex;align-items:center;justify-content:space-between;margin-top:18px}.chat-members-panel h3:first-child{margin-top:0}
.chat-pin-item{display:block;padding:9px 10px;margin:0 0 6px;border:1px solid #dfe6ee;border-radius:10px;background:#fff;color:inherit;text-decoration:none}
.chat-pin-item:hover{border-color:#bcdadb;background:#f5fbfb}.chat-pin-item strong,.chat-pin-item span{display:block}.chat-pin-item strong{font-size:10px;color:var(--brand-teal-700)}.chat-pin-item span{margin-top:2px;font-size:11px;line-height:1.35;color:var(--muted)}
.chat-pin-label{margin:-2px 0 6px;color:#8b6e12;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.chat-message.pinned .chat-bubble{border-color:#e5d18c;box-shadow:0 0 0 1px rgba(226,194,88,.12)}
.chat-readonly{margin:0;border-radius:0;border-left:0;border-right:0;border-bottom:0}
.compact-empty{padding:15px 8px;font-size:11px}
@media(max-width:760px){.member-add{grid-template-columns:1fr}.info-grid{grid-template-columns:1fr}.member-role-form{display:flex}.admin-tabs{margin-left:-2px;margin-right:-2px}}
.chat-list-actions{display:flex;align-items:center;gap:5px}

/* 0.4.0 · RailOpt / Meldestellen workflow */
.filter-chips{display:flex;gap:.55rem;flex-wrap:wrap;margin:0 0 1rem}.filter-chip{display:inline-flex;align-items:center;min-height:36px;padding:.45rem .75rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-weight:700;text-decoration:none}.filter-chip:hover,.filter-chip.active{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,var(--surface));color:var(--primary)}
.filter-panel{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr)) auto;gap:.75rem;align-items:end;margin:0 0 1rem;padding:1rem;border:1px solid var(--border);border-radius:18px;background:var(--surface)}
.duty-reporting-group{padding:0;overflow:hidden}.duty-reporting-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.15rem;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 11%,var(--surface)),var(--surface));border-bottom:1px solid var(--border)}.duty-reporting-head h2{margin:.15rem 0 0}.reporting-code{display:inline-flex;padding:.2rem .55rem;border-radius:8px;background:var(--primary);color:#fff;font-size:.78rem;font-weight:800;letter-spacing:.04em}.duty-date-block+.duty-date-block{border-top:1px solid var(--border)}.duty-date-head{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 1.15rem;background:var(--surface-2);font-size:.92rem}.duty-date-block .table-wrap{border:0;border-radius:0;margin:0}
.import-source-card{padding:1.15rem}.import-source-card textarea{min-height:190px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.84rem}.import-or{text-align:center;font-weight:800;color:var(--muted);padding:.2rem}.import-summary{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:.75rem;margin:1rem 0}.import-summary .stat-card{min-height:96px}.import-preview-table td,.import-preview-table th{white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis}.import-resolutions{display:grid;gap:.75rem;margin:1rem 0}.import-resolution{padding:1rem;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.import-resolution .grid-3{align-items:end}
@media(max-width:900px){.filter-panel{grid-template-columns:1fr 1fr}.import-summary{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.filter-panel{grid-template-columns:1fr}.duty-reporting-head,.duty-date-head{align-items:flex-start;flex-direction:column}.import-summary{grid-template-columns:1fr 1fr}}

/* 0.5.0 · Operations Workspace visual system */
:root{
  --bg:#f3f6fa;
  --surface:#fff;
  --surface-soft:#f7f9fc;
  --surface-tint:#eef3f8;
  --ink:#111b2e;
  --ink-soft:#334158;
  --muted:#6f7b8e;
  --muted-2:#96a0af;
  --line:#dde4ed;
  --line-strong:#c9d3df;
  --radius:18px;
  --radius-lg:26px;
  --sidebar:258px;
  --topbar:68px;
  --shadow-xs:0 1px 2px rgba(21,33,54,.035),0 6px 18px rgba(21,33,54,.025);
  --shadow-sm:0 10px 30px rgba(21,33,54,.065);
  --shadow-md:0 20px 55px rgba(21,33,54,.09);
}
body{background:radial-gradient(circle at 86% -5%,rgba(67,166,170,.09),transparent 28%),linear-gradient(180deg,#f8fafc 0,#f3f6fa 34%,#f2f5f9 100%)}
.sidebar{background:linear-gradient(180deg,#13234f 0%,#172b5c 55%,#193468 100%);box-shadow:14px 0 42px rgba(18,35,79,.08)}
.sidebar-brand{padding:20px 18px 16px}.sidebar-scroll{padding:13px 10px 20px}.side-nav a{min-height:42px;border-radius:12px;padding:7px 9px;font-size:12.5px}.nav-icon{width:27px;height:27px;flex-basis:27px}
.workspace-topbar{padding:0 28px;background:rgba(248,250,252,.82);backdrop-filter:saturate(175%) blur(22px)}
.container{width:min(100%,1580px);padding:26px 30px 46px}.content-frame::before{display:none}
h1{font-size:clamp(28px,3vw,40px);font-weight:820;letter-spacing:-.045em}h2{font-weight:790}.card{border-radius:18px;box-shadow:var(--shadow-xs)}
button,.button{border-radius:11px;box-shadow:none}.button.small,button.small{min-height:32px;padding:5px 10px;font-size:10.5px}
.table-wrap{border-radius:16px;box-shadow:none}.table-wrap.flush{border:0;border-radius:0}.modern-table th,.duty-table th{background:#f7f9fc}.modern-table td,.duty-table td{padding-top:12px;padding-bottom:12px}

.page-hero{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin:0 0 18px;padding:24px 26px;border:1px solid #dae3ed;border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(247,250,253,.96));box-shadow:var(--shadow-xs);overflow:hidden}
.page-hero::after{content:"";position:absolute;width:260px;height:260px;right:-105px;top:-145px;border:34px solid rgba(67,166,170,.08);border-radius:50%;pointer-events:none}
.page-hero>div{position:relative;z-index:1}.page-hero h1{margin:4px 0 8px}.page-hero p{max-width:760px;margin:0;color:var(--muted);font-size:13px}.page-hero.compact{padding:19px 22px}.page-hero.compact h1{font-size:30px}.eyebrow{display:block;color:var(--brand-teal-700);font-size:9.5px;font-weight:900;text-transform:uppercase;letter-spacing:.14em}.hero-actions{position:relative;z-index:1;display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}

.operations-toolbar{display:grid;grid-template-columns:minmax(180px,1fr) minmax(160px,.8fr) minmax(160px,.8fr) auto auto;gap:10px;align-items:end;margin:0 0 18px;padding:13px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.9);box-shadow:var(--shadow-xs)}
.operations-toolbar label{margin:0}.operations-toolbar input,.operations-toolbar select{margin-top:4px;min-height:39px;padding-top:8px;padding-bottom:8px}.operations-toolbar button,.operations-toolbar .button{min-height:39px;margin:0}
.date-tabs{display:flex;gap:6px;margin:0 0 12px;padding:5px;border:1px solid var(--line);border-radius:14px;background:#edf2f7;width:max-content;max-width:100%;overflow:auto}.date-tab{display:inline-flex;min-height:34px;align-items:center;padding:6px 12px;border-radius:10px;color:var(--muted);font-size:11px;font-weight:790;text-decoration:none;white-space:nowrap}.date-tab:hover{background:rgba(255,255,255,.72);color:var(--brand-navy)}.date-tab.active{background:#fff;color:var(--brand-navy);box-shadow:0 3px 10px rgba(28,42,68,.08)}

.day-board{margin:0 0 20px;border:1px solid #d9e1eb;border-radius:22px;background:#fff;box-shadow:0 10px 28px rgba(21,33,54,.045);overflow:hidden}.day-board-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid #e2e8f0;background:linear-gradient(135deg,#fbfcfe,#f5f8fb)}.day-date{display:grid;grid-template-columns:auto auto;align-items:baseline;column-gap:10px}.day-date .day-kicker{grid-column:1/-1;margin-bottom:2px;color:var(--brand-teal-700);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.day-date h2{margin:0;font-size:24px;letter-spacing:-.035em}.day-date>span:last-child{color:var(--muted);font-size:12px;font-weight:700}.day-statuses{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.day-statuses>span{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border:1px solid #dde4ed;border-radius:999px;background:#fff;color:var(--muted);font-size:10px;font-weight:720}.day-statuses strong{color:var(--ink);font-size:11px}.day-statuses .status-open{background:#fff7e8;border-color:#f0dfb9}.day-statuses .status-response{background:#eef7f7;border-color:#cee5e6}.day-board-body{padding:12px}
.duty-subgroup{border:1px solid #e2e8f0;border-radius:16px;background:#fff;overflow:hidden}.duty-subgroup+.duty-subgroup{margin-top:10px}.duty-subgroup-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:#f8fafc;border-bottom:1px solid #e5eaf1}.duty-subgroup-head>div{display:flex;align-items:center;gap:9px}.duty-subgroup-head strong{font-size:12px}.duty-subgroup-head>span{color:var(--muted);font-size:10px;font-weight:700}.group-code,.network-chip,.location-chip{display:inline-flex;align-items:center;justify-content:center;padding:4px 7px;border-radius:8px;background:var(--brand-navy);color:#fff;font-size:9.5px;font-weight:850;letter-spacing:.04em}.group-code.network,.network-chip{background:#e8f4f4;color:var(--brand-teal-700);border:1px solid #cae2e3}.duty-number{color:var(--ink);font-weight:830;text-decoration:none}.duty-number:hover{color:var(--brand-teal-700)}.time-cell{display:flex;flex-direction:column;line-height:1.2}.time-cell small{margin-top:3px;color:var(--muted);font-size:9.5px}.cell-secondary{display:block;margin-top:3px;color:var(--muted);font-size:10px}.row-actions.compact{gap:5px}.icon-link{width:31px;height:31px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--muted);text-decoration:none;font-weight:800}.icon-link:hover{border-color:#bdcad8;color:var(--brand-navy);background:#f8fafc}.modern-empty{padding:42px 24px;text-align:center}.empty-icon{width:42px;height:42px;margin:0 auto 12px;display:grid;place-items:center;border-radius:14px;background:#eaf6f1;color:var(--ok);font-size:18px;font-weight:900}

.atf-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px}.atf-stat{position:relative;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 16px;border:1px solid var(--line);border-radius:16px;background:#fff;color:inherit;text-decoration:none;box-shadow:var(--shadow-xs)}.atf-stat:hover{border-color:#c7d2df;transform:translateY(-1px)}.atf-stat.active{border-color:#b9dadd;background:#f4fbfb}.atf-stat strong{font-size:25px;line-height:1;color:var(--brand-navy)}.atf-stat span{color:var(--muted);font-size:11px;font-weight:760}.table-card{padding:0;overflow:hidden}.table-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.table-card-head h2,.table-card-head p{margin:0}.atf-status-form{display:flex;align-items:center;gap:6px}.atf-status-form select{width:118px;min-height:34px;margin:0;padding:6px 28px 6px 8px;font-size:10.5px}.atf-status-form button{min-height:34px}.form-card{max-width:920px}.field-help{margin:-8px 0 14px;padding:9px 11px;border-radius:10px;background:#f4f7fb;color:var(--muted);font-size:10.5px}

@media(max-width:1080px){.operations-toolbar{grid-template-columns:1fr 1fr}.operations-toolbar button,.operations-toolbar .button{width:100%}.atf-summary{grid-template-columns:1fr 1fr}.page-hero{align-items:flex-start;flex-direction:column}.hero-actions{justify-content:flex-start}}
@media(max-width:760px){.container{padding:18px 14px 32px}.page-hero{padding:18px;border-radius:18px}.page-hero h1{font-size:30px}.operations-toolbar{grid-template-columns:1fr}.date-tabs{width:100%}.day-board{border-radius:17px}.day-board-head{align-items:flex-start;flex-direction:column}.day-statuses{justify-content:flex-start}.day-board-body{padding:8px}.atf-summary{grid-template-columns:1fr 1fr}.atf-status-form{align-items:stretch;flex-direction:column}.atf-status-form select{width:100%}}
@media(max-width:460px){.atf-summary{grid-template-columns:1fr}.day-date h2{font-size:21px}}
