:root {
  --navy:#101c32; --navy-deep:#0d172a; --ink:#182740; --muted:#54647b; --line:#dde5ef;
  --blue:#174fc0; --blue-dark:#103d9c; --sky:#eaf2ff; --teal:#70dfbd; --paper:#f4f7fb; --white:#fff;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink); background:var(--paper); font-synthesis:none;
}
* { box-sizing:border-box; }
body { margin:0; min-width:300px; }
a { color:var(--blue); text-decoration:none; }
button, input, select, textarea { font:inherit; }
button { cursor:pointer; }
[hidden] { display:none!important; }
:focus-visible { outline:3px solid #3486ef; outline-offset:3px; }
h1,h2,h3,p { margin:0; }
h1 { font-size:clamp(1.8rem,4vw,2.65rem); line-height:1.12; letter-spacing:-.055em; }
h2 { font-size:1.2rem; letter-spacing:-.035em; }
h3 { font-size:1rem; letter-spacing:-.02em; }
p { color:var(--muted); line-height:1.55; }
small { color:var(--muted); font-size:.76rem; }
svg { width:19px; height:19px; flex:none; }
.eyebrow { font-size:.68rem; font-weight:780; letter-spacing:.13em; color:var(--blue); display:inline-block; margin-bottom:7px; }
.app { min-height:100vh; display:grid; grid-template-columns:246px minmax(0,1fr); }
.sidebar { position:sticky; top:0; height:100vh; overflow:auto; display:flex; flex-direction:column; background:var(--navy); color:white; padding:27px 17px 17px; }
.brand { display:flex; align-items:center; gap:9px; color:#fff; font-size:2rem; line-height:.95; font-weight:830; letter-spacing:-.09em; width:max-content; }
.sidebar .brand { margin:0 0 29px 8px; }
.brand small { display:block; color:#c7d8ef; font-size:.49rem; letter-spacing:.2em; margin-top:6px; }
.brand-symbol { color:var(--teal); font-size:2.65rem; line-height:.9; font-weight:500; }
.brand-dot { color:var(--teal); }
.nav-label { font-size:.62rem; font-weight:780; color:#a2b6d2; letter-spacing:.12em; padding:13px 10px 6px; }
.nav-link { display:flex; align-items:center; gap:10px; padding:10px; border-radius:8px; margin:2px 0; color:#d7e2f0; font-size:.85rem; font-weight:570; }
.nav-link:hover { background:#243654; color:#fff; }
.nav-link.current { background:#244677; color:#fff; box-shadow:inset 3px 0 0 #75aaff; }
.side-end { margin-top:auto; padding:20px 8px 0; }
.side-end small { display:block; color:#a6b7cc; margin-top:10px; }
.environment { color:#d2f3e8; font-size:.59rem; letter-spacing:.11em; font-weight:780; border:1px solid #4a685f; border-radius:30px; padding:7px 9px; width:max-content; display:inline-flex; align-items:center; gap:6px; }
.environment i { width:7px; height:7px; background:var(--teal); border-radius:50%; }
.workspace { min-width:0; }
.topbar { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px clamp(14px,3vw,34px); background:#fff; min-height:64px; border-bottom:1px solid var(--line); }
.crumb,.top-actions,.account { display:flex; align-items:center; gap:11px; font-size:.81rem; }
.crumb { color:var(--muted); }
.crumb strong,.account strong { color:var(--ink); }
.divider { color:#8291a6; }
.account small { display:block; font-size:.68rem; }
.avatar { width:36px; height:36px; display:grid; place-items:center; border-radius:50%; color:#164595; background:#e4edff; font-weight:800; }
.quiet { color:var(--muted); background:transparent; border:0; padding:7px; border-radius:7px; }
.quiet:hover { background:var(--paper); color:var(--ink); }
.icon-button { display:inline-grid; place-items:center; width:36px; height:36px; border:1px solid var(--line); border-radius:8px; color:var(--blue); background:#fff; flex:none; }
.icon-button:hover { background:var(--sky); }
.nav-toggle { display:none; }
.content { max-width:1560px; margin:auto; padding:24px clamp(14px,3vw,34px); }
.intro { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:19px; padding:6px 0; }
.intro p { margin-top:7px; font-size:.9rem; }
.hero { background:linear-gradient(118deg,#10254a 0%,#15396a 62%,#16487e 100%); color:#fff; border-radius:13px; padding:26px 25px; }
.hero .eyebrow { color:#9dc3ff; }
.hero p { color:#cbdcf0; }
.hero .primary { background:#dbeaff; color:#123d80; border-color:#dbeaff; }
.hero .primary:hover { background:#fff; }
.button { display:inline-flex; min-height:38px; align-items:center; justify-content:center; gap:6px; font-size:.81rem; font-weight:740; border:1px solid transparent; border-radius:8px; padding:8px 12px; white-space:normal; text-align:center; }
.primary { color:#fff; background:var(--blue); border-color:var(--blue); }
.primary:hover { background:var(--blue-dark); }
.secondary { color:var(--blue); background:#fff; border-color:#cbd9ee; }
.secondary:hover { background:var(--sky); }
.stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:16px; }
.stat-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.stat,.card { background:var(--white); border:1px solid var(--line); border-radius:12px; box-shadow:0 2px 3px #162e5006; }
.stat { display:flex; flex-direction:column; gap:5px; padding:16px; font-size:.81rem; font-weight:650; }
.stat strong { font-size:clamp(1.2rem,2.3vw,1.75rem); letter-spacing:-.065em; overflow-wrap:anywhere; }
.stat small { font-weight:400; }
.stat-top,.card-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.tile-icon { display:grid; place-items:center; width:33px; height:33px; color:var(--blue); background:var(--sky); border-radius:8px; flex:none; }
.dash-grid { display:grid; grid-template-columns:1.45fr 1fr; gap:16px; align-items:start; }
.card { margin-bottom:16px; overflow:hidden; }
.card-head { padding:17px 18px 12px; }
.card-head p { font-size:.78rem; margin-top:3px; }
.text-link { font-weight:720; font-size:.8rem; }
.text-link:hover,.record:hover { text-decoration:underline; }
.progress-wrap { margin:11px 18px 14px; }
.progress-meta { display:flex; justify-content:space-between; gap:8px; font-size:.8rem; }
progress { border:0; border-radius:20px; width:100%; height:8px; margin-top:7px; background:#e7eef8; }
progress::-webkit-progress-bar { background:#e7eef8; border-radius:20px; }
progress::-webkit-progress-value { background:#3f7bda; border-radius:20px; }
.mini-stats { display:grid; grid-template-columns:repeat(3,1fr); padding:2px 18px 16px; gap:8px; }
.mini-stats div { padding:9px; background:#f1f6fe; border-radius:8px; }
.mini-stats strong { display:block; font-size:1.15rem; }
.ranking { list-style:none; margin:0 18px 15px; padding:0; }
.ranking li { display:grid; grid-template-columns:25px 1fr 23px; gap:8px; align-items:center; padding:7px 0; border-bottom:1px solid var(--line); font-size:.82rem; }
.ranking li:last-child { border-bottom:0; }
.rank-num { background:var(--sky); color:var(--blue); border-radius:6px; text-align:center; padding:2px; }
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; text-align:left; font-size:.8rem; }
th { color:#445874; font-size:.67rem; letter-spacing:.065em; text-transform:uppercase; background:#f3f7fd; white-space:nowrap; }
td,th { padding:11px 13px; border-top:1px solid #e6edf5; }
td:first-child,th:first-child { padding-left:18px; }
td:last-child,th:last-child { padding-right:18px; }
td small { display:block; margin-top:2px; }
tbody tr:hover { background:#f9fbff; }
.record { font-weight:760; white-space:nowrap; }
.open-record { display:grid; place-items:center; width:27px; height:27px; border:1px solid #d7e4fa; border-radius:7px; }
.open-record:hover { background:var(--sky); }
.badge { display:inline-flex; max-width:100%; align-items:center; border-radius:99px; padding:4px 8px; font-size:.69rem; font-weight:770; white-space:nowrap; }
.badge.blue { color:#19498f; background:#e8f1ff; }.badge.green { color:#0e6046; background:#ddf6eb; }.badge.red { color:#a12237; background:#ffedf0; }.badge.amber { color:#775008; background:#fff1cf; }
.tabs { display:flex; flex-wrap:wrap; gap:4px; border-bottom:1px solid var(--line); margin-bottom:16px; }
.tabs a { padding:9px 11px; color:var(--muted); font-size:.81rem; font-weight:650; border-bottom:2px solid transparent; }
.tabs a:hover,.tabs .selected { color:var(--blue); border-bottom-color:var(--blue); }
.filters { display:flex; flex-wrap:wrap; align-items:flex-end; gap:10px; padding:6px 18px 15px; }
.filters label { flex:1 1 118px; max-width:330px; }
.filters.inline label { flex:0 1 215px; }
.compact .filters { padding-top:12px; padding-bottom:12px; }
label { display:grid; gap:5px; color:#334766; font-size:.76rem; font-weight:670; }
input,select,textarea { min-height:38px; width:100%; max-width:100%; border:1px solid #cbd7e8; border-radius:7px; padding:8px 9px; background:#fff; color:var(--ink); font-size:.86rem; }
input::placeholder,textarea::placeholder { color:#657690; }
input[type=checkbox] { width:15px; min-height:15px; }
textarea { resize:vertical; }
.form-card .form-grid,.form-card .stack,.form-card>.flash,.form-card details,.form-card .price-preview { margin:0 18px 16px; }
.form-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; align-items:end; }
.form-card details .form-grid { margin:10px 0 0; }
.form-section { margin-top:7px; border-top:1px solid var(--line); }
.form-card>.form-actions,.form-card form>.form-actions,.card>.form-actions { padding:0 18px 16px; }
.form-actions,.table-actions,.checkline,.labels { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.form-actions form { margin:0; }
.table-actions { align-items:flex-end; min-width:175px; }
.table-actions label { flex:1; }
.table-actions .button { min-height:34px; }
.table-actions select { min-height:34px; }
.checkline { margin:0 18px 14px; gap:15px; }
.checkline label { display:flex; align-items:center; }
.stack { display:grid; gap:12px; }.stack.tight { gap:6px; }
.stack .button { justify-self:start; }.login-content .stack .button { justify-self:stretch; }
.price-preview { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:10px 12px; border-radius:7px; background:#edf5ff; color:#16488f; font-size:.85rem; }
.price-preview strong { font-size:1rem; }
details { padding:9px 11px; border:1px solid var(--line); border-radius:7px; }
summary { cursor:pointer; font-size:.86rem; font-weight:700; }
.detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; margin:0; padding:4px 18px 17px; }
dt { color:var(--muted); font-size:.73rem; } dd { margin:3px 0 0; font-size:.83rem; font-weight:650; overflow-wrap:anywhere; }
.timeline { margin:0 18px 18px; padding-left:17px; font-size:.83rem; }
.timeline li { padding:5px 0 9px; }.timeline small { display:block; }
.tile-grid,.board { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; padding:4px 18px 16px; }
.tile { padding:13px; border:1px solid var(--line); border-radius:9px; background:#fff; min-width:0; }
.tile h3 { margin:5px 0; overflow-wrap:anywhere; }.tile p { font-size:.81rem; margin-bottom:8px; overflow-wrap:anywhere; }
.board { grid-template-columns:repeat(4,minmax(0,1fr)); padding:0; margin-bottom:16px; }
.board-column { min-width:0; padding:10px; background:#eaf0f9; border:1px solid #dce6f4; border-radius:10px; }
.board-column h2 { display:flex; justify-content:space-between; font-size:.83rem; gap:4px; margin-bottom:9px; }
.board-column h2 span { color:var(--blue); }.board-column .tile { margin-bottom:7px; }.board-column .text-link { display:inline-block; margin-top:7px; }
.quiet-empty { font-size:.76rem; padding:8px 3px; }
.date-nav { display:flex; align-items:center; gap:6px; }.date-nav .icon-button { font-size:1.35rem; }
.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); margin:3px 18px 17px; border-top:1px solid var(--line); border-left:1px solid var(--line); }
.weekday,.calendar-day { padding:7px; border-bottom:1px solid var(--line); border-right:1px solid var(--line); }
.weekday { text-align:center; font-size:.73rem; font-weight:730; background:var(--sky); }.calendar-day { min-height:72px; font-size:.79rem; }
.calendar-day.dim { background:#f3f5f8; }.calendar-day.dim a { color:#6b7890; }
.day-today { display:inline-block; color:#fff; background:var(--blue); border-radius:50%; padding:3px 6px; }
.calendar-event { display:block; margin:5px 0 0; background:#eaf2ff; padding:4px; border-radius:5px; font-size:.69rem; overflow-wrap:anywhere; }
.form-record { font-size:.82rem; padding:8px; background:var(--paper); border-radius:7px; }
.charge-item { display:grid; grid-template-columns:2fr 1fr 1fr 36px; align-items:end; gap:8px; margin:0 18px 10px; }
.partner-tree { list-style:none; padding-left:18px; margin:7px 12px 12px 0; }.partner-tree li { padding:6px 0 0 10px; border-left:1px solid var(--line); font-size:.85rem; }.partner-tree .text-link { margin-left:7px; }
.preserve-lines { white-space:pre-line; }.labels { margin-bottom:8px; }
.empty { text-align:center; padding:23px 10px 25px; font-size:.85rem; }.empty span { color:#6486b7; font-size:1.7rem; }
.pagination { display:flex; gap:11px; padding:12px 18px; font-size:.85rem; }
.flash { border:1px solid #b6daca; background:#e9f8ef; color:#17573d; border-radius:8px; padding:10px 12px; margin-bottom:13px; font-size:.85rem; }
.flash.error { border-color:#f1bcc4; color:#8e1e32; background:#fff0f3; }.flash.info { border-color:#bfd6f6; background:#eff6ff; color:#214e88; }
footer { display:flex; justify-content:space-between; gap:8px; font-size:.7rem; color:#5d708a; padding:11px 0 0; }
.login-page { display:grid; min-height:100vh; place-items:center; padding:24px; background:#eaf0f9; }
.login-shell { display:grid; grid-template-columns:1.08fr 1fr; width:min(850px,100%); border-radius:18px; overflow:hidden; box-shadow:0 24px 60px #233d6e30; }
.login-art { position:relative; display:flex; flex-direction:column; justify-content:space-between; min-height:520px; gap:26px; padding:35px; overflow:hidden; background:linear-gradient(142deg,#0f203d,#1b4982); color:#fff; }
.login-art>*:not(.login-grid) { position:relative; z-index:1; }.login-art .eyebrow { color:#9ac8ff; }
.login-art h1 { font-size:clamp(2.5rem,5vw,3.9rem); }.login-art h1 span { color:var(--teal); }
.login-art p { color:#cfe0f4; margin-top:13px; max-width:25ch; }
.login-grid { position:absolute; inset:0; background:repeating-linear-gradient(90deg,#b6d6ff14 0 1px,transparent 1px 43px),repeating-linear-gradient(0deg,#b6d6ff14 0 1px,transparent 1px 43px); mask-image:linear-gradient(130deg,transparent,#000); }
.login-content { background:#fff; padding:40px; align-self:stretch; display:flex; flex-direction:column; justify-content:center; }
.login-content h2 { font-size:1.85rem; }.login-content p { margin:6px 0 15px; font-size:.88rem; }
.demo-card { display:grid; padding:12px; margin-top:17px; background:#edf4ff; color:#214981; border-radius:8px; gap:3px; font-size:.75rem; overflow-wrap:anywhere; }
@media (max-width:1110px) {
  .app { grid-template-columns:207px minmax(0,1fr); }.sidebar { padding-inline:12px; }
  .stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.board { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:800px) {
  .app { display:block; }.sidebar { position:fixed; inset:64px auto 0 0; height:auto; z-index:3; width:232px; display:none; box-shadow:0 12px 35px #111a3440; }
  .menu-open .sidebar { display:flex; }.nav-toggle { display:inline-grid; }.topbar { min-height:64px; }.crumb>span { display:none; }
  .dash-grid { grid-template-columns:1fr; gap:0; }.form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:520px) {
  .top-actions { gap:6px; }.account>span+span { display:none; }.intro { align-items:flex-start; flex-direction:column; }
  .form-grid,.board { grid-template-columns:1fr; }.charge-item { grid-template-columns:1fr 1fr; }
  .calendar-grid { margin-inline:6px; }.calendar-day,.weekday { padding:3px; }.calendar-day { min-height:55px; }
  .calendar-event { font-size:.6rem; }.calendar-event strong { display:block; }.stat { padding:9px; }.stat-top { align-items:flex-start; }
  .tile-icon { display:none; }.login-page { padding:12px; }.login-shell { grid-template-columns:1fr; }.login-art { min-height:190px; gap:13px; padding:20px; }.login-art h1 br { display:none; }.login-art h1 { font-size:2rem; }.login-art p { display:none; }.login-content { padding:22px; }
}

.charge-group { margin:0 1rem .8rem; border:1px solid var(--line); border-radius:.7rem; }
.charge-group summary { cursor:pointer; padding:.7rem .9rem; font-weight:650; }
.closed-agenda summary { cursor:pointer; padding:.4rem 0; color:var(--muted); }
[data-agenda-slots] button[aria-pressed="true"] { outline:2px solid var(--blue); outline-offset:1px; }
.calendar-event.provisional { border:1px dashed currentColor; }
.row-menu { position:relative; font-size:.86rem; }
.row-menu button,.row-menu a { display:block; white-space:nowrap; padding:.3rem 0; }
.dashboard-periods { padding-left:0; }
.avatar img,.profile-photo { border-radius:50%; object-fit:cover; }
.avatar img { width:100%; height:100%; }
.profile-photo { width:72px; height:72px; }
.recovery-card { width:min(100%,420px); border-radius:1rem; }
