:root{--bg:#f3f6f8;--panel:#fff;--ink:#17212b;--muted:#667482;--line:#d9e1e7;--brand:#1f7a4d;--brand2:#155f3a;--accent:#e7f5ee;--warn:#b56a00;--danger:#b42318;--info:#175cd3;--shadow:0 8px 24px rgba(15,35,25,.08);--radius:14px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}a{color:var(--brand2);text-decoration:none}a:hover{text-decoration:underline}.layout{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;overflow:auto;background:#123a2a;color:#fff;padding:18px 14px}.brand{display:flex;gap:10px;align-items:center;padding:7px 8px 18px;font-weight:800;font-size:20px}.brand small{display:block;font-size:11px;font-weight:500;color:#b9d8ca}.nav-section{margin:14px 8px 6px;color:#9ec6b5;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.nav a{display:flex;gap:10px;align-items:center;color:#e8f5ef;padding:10px 11px;border-radius:10px;margin:2px 0;font-size:14px}.nav a:hover,.nav a.active{background:#235b43;text-decoration:none}.main{min-width:0}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:12px 24px}.topbar .user{font-size:13px;color:var(--muted)}.topbar .user b{color:var(--ink)}.content{padding:24px;max-width:1600px;margin:0 auto}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.page-head h1{font-size:25px;margin:0 0 5px}.page-head p{margin:0;color:var(--muted)}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn,button{appearance:none;border:1px solid transparent;border-radius:9px;padding:9px 13px;font:inherit;font-weight:650;cursor:pointer;background:var(--brand);color:#fff}.btn:hover,button:hover{filter:brightness(.97);text-decoration:none}.btn.secondary,button.secondary{background:#fff;color:var(--ink);border-color:var(--line)}.btn.danger,button.danger{background:var(--danger)}.btn.warn,button.warn{background:var(--warn)}.btn.small,button.small{padding:6px 9px;font-size:12px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:18px}.grid{display:grid;gap:16px}.grid.cards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.metric{padding:16px}.metric .label{color:var(--muted);font-size:12px}.metric .value{font-size:27px;font-weight:800;margin-top:5px}.metric .hint{font-size:12px;color:var(--muted);margin-top:3px}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;align-items:end}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:12px;color:var(--muted);font-weight:650}.field input,.field select,.field textarea{width:100%;border:1px solid #bdc9d2;border-radius:9px;background:#fff;color:var(--ink);padding:9px 10px;font:inherit}.field textarea{min-height:90px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid #c9ead9;border-color:var(--brand)}.checkbox{display:flex;align-items:center;gap:8px}.checkbox input{width:18px;height:18px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:11px}table{width:100%;border-collapse:collapse;background:#fff;font-size:13px}th,td{padding:10px 11px;border-bottom:1px solid #e7ecef;vertical-align:top;text-align:left;white-space:nowrap}th{position:sticky;top:0;background:#eef4f1;color:#33443c;font-size:11px;text-transform:uppercase;letter-spacing:.035em;z-index:1}tr:hover td{background:#f7fbf9}.wrap{white-space:normal;min-width:220px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700;background:#eaf1f5;color:#34495e}.badge.ok{background:#e8f7ef;color:#11643b}.badge.warn{background:#fff4df;color:#8a5200}.badge.danger{background:#feeceb;color:#9c2119}.badge.info{background:#eaf2ff;color:#174ea6}.flash{padding:12px 14px;border-radius:10px;margin-bottom:14px;border:1px solid}.flash.success{background:#eaf8f0;border-color:#a9dfbd;color:#155f3a}.flash.error{background:#fff0ef;border-color:#f0b7b2;color:#8e2018}.flash.warning{background:#fff7e8;border-color:#f3d19b;color:#7d4c00}.empty{text-align:center;color:var(--muted);padding:36px}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.tabs a{padding:8px 11px;border-radius:9px;background:#fff;border:1px solid var(--line)}.tabs a.active{background:var(--accent);border-color:#8ac8a8;font-weight:700}.chart{display:block;max-width:100%;height:auto;border-radius:10px;border:1px solid var(--line);background:#fff}.kv{display:grid;grid-template-columns:minmax(160px,250px) 1fr;gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.kv div{padding:9px 11px;border-bottom:1px solid var(--line)}.kv div:nth-child(odd){background:#f3f7f5;font-weight:650;color:#42544b}.kv div:nth-last-child(-n+2){border-bottom:0}.notice{padding:13px 15px;background:#eef7ff;border-left:4px solid var(--info);border-radius:8px;margin:12px 0;color:#234}.danger-zone{border-color:#efb5b0;background:#fffafa}.auth-body{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;background:linear-gradient(135deg,#123a2a,#1c6b49)}.auth-card{width:min(440px,100%);background:#fff;border-radius:18px;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.25)}.auth-card h1{margin:0 0 5px}.auth-card .subtitle{color:var(--muted);margin:0 0 22px}.auth-card .field{margin-bottom:13px}.auth-card button{width:100%;margin-top:8px}.code-input{font-size:28px!important;letter-spacing:.25em;text-align:center;font-weight:800}.mobile-menu{display:none}.pre{white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;background:#0d1d16;color:#d8f5e5;padding:13px;border-radius:9px;overflow:auto}.pagination{display:flex;gap:5px;justify-content:flex-end;margin-top:12px}.pagination a{padding:6px 10px;background:#fff;border:1px solid var(--line);border-radius:7px}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.photo-grid figure{margin:0;border:1px solid var(--line);border-radius:10px;padding:8px;background:#fff}.photo-grid img{width:100%;height:160px;object-fit:contain;background:#f3f5f6;border-radius:7px}.photo-grid figcaption{font-size:11px;color:var(--muted);margin-top:6px;overflow-wrap:anywhere}@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{position:fixed;left:-280px;z-index:50;width:260px;transition:.2s}.sidebar.open{left:0}.mobile-menu{display:inline-flex}.content{padding:16px}.topbar{padding:10px 14px}.page-head{flex-direction:column}.kv{grid-template-columns:1fr}.kv div:nth-child(odd){border-bottom:0}.kv div:nth-last-child(-n+2){border-bottom:1px solid var(--line)}}@media print{.sidebar,.topbar,.actions,.filters,.tabs{display:none!important}.layout{display:block}.content{padding:0}.card{box-shadow:none;border:0}.table-wrap{overflow:visible}th{position:static}}

.demo-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(90deg,#5b21b6,#7c3aed);color:#fff;padding:10px 18px;box-shadow:0 2px 8px rgba(49,16,101,.25);position:sticky;top:0;z-index:35}.demo-banner form{margin:0}.demo-banner button{background:#fff;color:#5b21b6;border-color:#fff}.demo-banner button:hover{background:#f3e8ff}@media(max-width:720px){.demo-banner{align-items:flex-start;flex-direction:column}.demo-banner button{width:auto}}
.two-col{grid-template-columns:minmax(320px,1fr) minmax(260px,.7fr)}
.top-gap{margin-top:14px}
.danger-zone{border-color:#f2b8b5;background:#fffafa}
@media(max-width:800px){.two-col{grid-template-columns:1fr}}


/* V.02.02 web refresh */
.brand{display:flex;gap:12px;align-items:center;padding:4px 8px 18px;font-weight:800;font-size:20px;color:#fff;text-decoration:none}.brand:hover{text-decoration:none}.brand-logo-wrap{width:56px;height:56px;min-width:56px;border-radius:999px;display:grid;place-items:center;background:rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}.brand-logo{width:46px;height:46px;border-radius:999px;object-fit:cover;background:#fff}
.nav-tree{display:flex;flex-direction:column;gap:6px}.nav-group{border-radius:12px;transition:background .2s ease}.nav-top{width:100%;display:flex;align-items:center;justify-content:space-between;padding:10px 11px;border-radius:10px;background:transparent;border:0;color:#e8f5ef;font-size:15px;font-weight:700}.nav-top:hover,.nav-group.active>.nav-top{background:#235b43}.nav-top-main{display:flex;align-items:center;gap:10px}.nav-top-icon{font-size:17px}.nav-caret{font-size:14px;transition:transform .18s ease;color:#b9d8ca}.nav-group:hover .nav-caret,.nav-group.active .nav-caret,.nav-group.open .nav-caret{transform:rotate(180deg)}.nav-submenu{display:none;padding:4px 0 8px 14px}.nav-group:hover .nav-submenu,.nav-group.active .nav-submenu,.nav-group.open .nav-submenu{display:block}.nav-submenu a{font-size:13px;margin:3px 0;background:transparent}.nav-submenu a:hover,.nav-submenu a.active{background:#235b43}.topbar-tools{display:flex;align-items:center;gap:14px}.topbar-title{display:flex;align-items:center;gap:10px}
.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.chart-card img{width:100%;height:auto}
@media(max-width:900px){.nav-group:hover .nav-submenu{display:none}.nav-group.open .nav-submenu,.nav-group.active .nav-submenu{display:block}.topbar-tools{flex-wrap:wrap;justify-content:flex-end}.brand-logo-wrap{width:52px;height:52px;min-width:52px}.brand-logo{width:42px;height:42px}}

/* V.02.07 stable fly-out navigation: submenu overlays content and never changes sidebar height */
@media(min-width:901px){
  .sidebar{overflow:visible;z-index:70}
  .nav-tree{position:relative;overflow:visible}
  .nav-group{position:relative}
  .nav-group::after{content:"";position:absolute;left:100%;top:-6px;width:14px;height:calc(100% + 12px)}
  .nav-submenu{
    display:block!important;
    position:absolute;
    left:calc(100% + 12px);
    top:-8px;
    width:286px;
    max-height:min(72vh,620px);
    overflow:auto;
    padding:10px;
    border:1px solid rgba(18,58,42,.18);
    border-radius:14px;
    background:#fff;
    box-shadow:0 18px 50px rgba(10,35,24,.24);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateX(-8px) scale(.985);
    transform-origin:left top;
    transition:opacity .14s ease,transform .14s ease,visibility 0s linear .14s;
    z-index:1000;
  }
  .nav-submenu::before{content:"";position:absolute;left:-14px;top:0;width:14px;height:100%}
  .nav-group:hover>.nav-submenu,
  .nav-group.keyboard-open>.nav-submenu{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateX(0) scale(1);
    transition-delay:0s;
  }
  .nav-submenu a{color:#1d3d2f;margin:2px 0;padding:10px 11px}
  .nav-submenu a:hover,.nav-submenu a.active{background:#e7f5ee;color:#155f3a}
  .nav-group.active>.nav-top{background:#235b43}
  .nav-caret{transform:rotate(-90deg)!important}
  .nav-group:hover .nav-caret,.nav-group.keyboard-open .nav-caret{transform:rotate(-90deg) translateY(2px)!important}
}
@media(max-width:900px){
  .sidebar{overflow:auto}
  .nav-submenu{position:static!important;width:auto!important;max-height:none!important;box-shadow:none!important;border:0!important;background:transparent!important;padding:4px 0 8px 14px!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important;display:none!important}
  .nav-group.open>.nav-submenu{display:block!important}
  .nav-group.active>.nav-submenu{display:none!important}
  .nav-group.active.open>.nav-submenu{display:block!important}
}

/* V.02.05 training and detailed help */
.training-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.training-card{position:relative;color:var(--ink);transition:transform .15s ease,box-shadow .15s ease}.training-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(15,35,25,.14);text-decoration:none}.training-card h2,.training-card h3{margin:8px 0}.training-card p{color:var(--muted);margin:6px 0 14px}.training-card-icon{font-size:34px}.training-step-number{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:var(--accent);color:var(--brand2);font-weight:800}.training-open{color:var(--brand2);font-size:13px;font-weight:700}.lesson-card{max-width:920px;margin-inline:auto}.lesson-card>h1{margin:14px 0 18px}.lesson-steps{padding-left:26px}.lesson-steps li{padding:8px 0 8px 6px;line-height:1.55}.lesson-result,.lesson-warning{padding:14px 16px;border-radius:10px;margin-top:16px}.lesson-result{background:#eaf8f0;border:1px solid #a9dfbd;color:#155f3a}.lesson-warning{background:#fff7e8;border:1px solid #f3d19b;color:#7d4c00}.help-role-head{background:linear-gradient(135deg,#fff,#edf8f2)}.help-detail{padding:0;overflow:hidden}.help-detail summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;cursor:pointer;font-weight:800;list-style:none}.help-detail summary::-webkit-details-marker{display:none}.help-detail[open] summary{background:#eef6f2;border-bottom:1px solid var(--line)}.help-caret{transition:transform .18s ease}.help-detail[open] .help-caret{transform:rotate(180deg)}.help-detail-body{padding:18px;line-height:1.55}.help-detail-body h3{margin:18px 0 8px}.help-detail-body ul{margin:6px 0;padding-left:22px}.help-detail-body li{margin:7px 0}

/* V.02.07 system components */
.inline-form{display:inline;margin:0}.nav-submenu form{margin:0}.nav-submenu .nav-action{display:flex;width:100%;gap:10px;align-items:center;color:#1d3d2f;padding:10px 11px;border:0;border-radius:10px;background:transparent;font-size:13px;font-weight:500;text-align:left}.nav-submenu .nav-action:hover,.nav-submenu .nav-action.active{background:#e7f5ee;color:#155f3a}.nav-submenu .nav-action[disabled]{opacity:.55;cursor:default}
.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:8px}.auth-logo{width:72px;height:72px;border-radius:50%;object-fit:cover;background:#fff;box-shadow:0 0 0 5px #edf7f1,0 6px 20px rgba(15,35,25,.14)}.auth-brand h1{margin:0}.auth-version{font-size:12px;color:var(--muted);font-weight:700}.auth-secondary{margin-top:14px;text-align:center}.auth-security-note{font-size:11px;color:var(--muted);margin-top:20px}
.registry-head-actions{display:flex;align-items:flex-start;justify-content:flex-end;gap:10px;flex-wrap:wrap}.filter-control{position:relative;display:flex;gap:6px}.icon-btn{display:inline-grid;place-items:center;width:38px;height:38px;padding:0;border-radius:10px;font-size:19px;line-height:1}.filter-popover{position:absolute;right:0;top:calc(100% + 8px);width:min(560px,calc(100vw - 36px));padding:15px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 52px rgba(15,35,25,.22);z-index:80;display:none}.filter-control.open .filter-popover{display:block}.filter-popover-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.filters-compact{grid-template-columns:repeat(2,minmax(160px,1fr));padding:0;margin:0;background:transparent;border:0;box-shadow:none}.filter-actions{display:flex;gap:8px;align-items:center;grid-column:1/-1}.registry-card{padding:0;overflow:hidden}.registry-card .table-wrap{border:0;border-radius:0}.batch-actions{padding:12px 16px;margin-top:0;border-top:1px solid var(--line)}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.field-full{grid-column:1/-1}.field-help{color:var(--muted);line-height:1.35}.form-actions{margin-top:18px}.system-form{max-width:1200px}.analytics-selector{display:grid;gap:16px}.analytics-metric-row{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:12px;align-items:end}.analytics-metric select{font-size:16px;font-weight:700}.analytics-actions{margin-bottom:12px}.chart-card{min-height:320px;display:grid;place-items:center}.chart-card .chart{width:100%}
.number-cell{font-variant-numeric:tabular-nums}.print-only{display:none}
@media(max-width:700px){.filters-compact{grid-template-columns:1fr}.filter-popover{position:fixed;left:12px;right:12px;top:70px;width:auto;max-height:calc(100vh - 90px);overflow:auto}.analytics-metric-row{grid-template-columns:1fr}.registry-head-actions{width:100%;justify-content:space-between}.auth-logo{width:64px;height:64px}}
@media print{.print-only{display:block}.filter-control{display:none!important}}

/* V.02.07 consistency and filter controls */
.funnel-icon{width:19px;height:19px;fill:currentColor}.registry-head-actions>.actions,.page-head>.actions{align-items:center}.field input[type=number]{font-variant-numeric:tabular-nums}.table-wrap td,.table-wrap th{font-variant-numeric:tabular-nums}.system-form .field input,.system-form .field select,.system-form .field textarea,.filter-popover .field input,.filter-popover .field select{min-height:40px}.filter-popover .field{min-width:0}.filter-actions .btn,.filter-actions button{min-height:40px}.analytics-selector select{min-height:42px}.analytics-selector select[multiple]{min-height:180px}.accounting-links{display:flex;gap:8px;flex-wrap:wrap}.accounting-links .btn{min-width:150px;justify-content:center}

/* V.02.10 clickable figures and source drill-downs */
.metric-drilldown{position:relative;display:block;color:var(--ink);text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;overflow:visible}.metric-drilldown:hover,.metric-drilldown:focus-visible{transform:translateY(-2px);box-shadow:0 14px 34px rgba(15,35,25,.16);border-color:#7dbb99;text-decoration:none}.metric-head{display:flex;align-items:center;justify-content:space-between;min-height:24px}.metric-icon{font-size:20px}.metric-open{font-size:14px;color:var(--brand);opacity:.7}.metric-drilldown:hover .metric-open{opacity:1}.data-drilldown{position:relative;display:inline-flex;align-items:center;gap:4px;color:var(--brand2);font-weight:700;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;cursor:pointer}.data-drilldown:hover,.data-drilldown:focus-visible{color:var(--brand);text-decoration-style:solid}.data-drilldown::after,.metric-drilldown::after{content:attr(data-tooltip);position:absolute;z-index:140;left:50%;bottom:calc(100% + 10px);width:max-content;max-width:min(360px,calc(100vw - 36px));padding:9px 11px;border-radius:9px;background:#10291f;color:#fff;font-size:12px;font-weight:500;line-height:1.4;box-shadow:0 10px 30px rgba(0,0,0,.24);opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,5px);transition:opacity .12s ease,transform .12s ease,visibility .12s ease;white-space:normal}.data-drilldown:hover::after,.data-drilldown:focus-visible::after,.metric-drilldown:hover::after,.metric-drilldown:focus-visible::after{opacity:1;visibility:visible;transform:translate(-50%,0)}.number-source{font-variant-numeric:tabular-nums}.detail-drilldown{font-size:inherit}.dashboard-metrics{overflow:visible}.dashboard-metrics .card{overflow:visible}.source-formula{padding:13px 15px;margin-bottom:16px;border:1px solid #b8d9c7;border-left:4px solid var(--brand);border-radius:10px;background:#f1faf5;color:#29493a}.source-formula strong{display:block;margin-bottom:4px}.source-total{font-size:24px;font-weight:800;color:var(--brand2);font-variant-numeric:tabular-nums}@media(max-width:700px){.data-drilldown::after,.metric-drilldown::after{left:0;right:auto;transform:translate(0,5px);max-width:calc(100vw - 48px)}.data-drilldown:hover::after,.data-drilldown:focus-visible::after,.metric-drilldown:hover::after,.metric-drilldown:focus-visible::after{transform:translate(0,0)}}
/* Fixed tooltip portal: it is not clipped by scrollable registries. */
.data-drilldown::after,.metric-drilldown::after{display:none!important}.ui-tooltip{position:fixed;z-index:300;max-width:min(360px,calc(100vw - 24px));padding:9px 11px;border-radius:9px;background:#10291f;color:#fff;font-size:12px;font-weight:500;line-height:1.4;box-shadow:0 10px 30px rgba(0,0,0,.24);pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .1s ease,transform .1s ease}.ui-tooltip.visible{opacity:1;transform:translateY(0)}

.schedule-grid th,
.schedule-grid td{vertical-align:top;min-width:140px}
.schedule-grid th:first-child,
.schedule-grid td:first-child{min-width:110px}
.shift-chip{display:flex;flex-direction:column;gap:2px;padding:8px 10px;margin:4px 0;border:1px solid var(--line,#dfe6e3);border-radius:12px;background:#f7fbf8;color:inherit;text-decoration:none}
.shift-chip small{color:#66756f}
.shift-chip.empty{justify-content:center;align-items:center;min-height:56px;color:#94a39d;background:#fafcfa}
.shift-chip.status-completed{background:#eef8f1}
.shift-chip.status-started{background:#eef4ff}
.shift-chip.status-cancelled{background:#fff1f1}
.page-subhead{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}
.page-subhead h2{margin:0}
.page-subhead p{margin:4px 0 0;color:#5c6d66}

.form-advanced{margin-top:18px;border:1px solid var(--line);border-radius:12px;background:#f7faf8;padding:12px 14px}
.form-advanced summary{cursor:pointer;font-weight:800;color:var(--brand2)}
.form-advanced[open] summary{margin-bottom:10px}
.field.is-hidden{display:none!important}
.required-by-rule::after{content:" *";color:#b42318}

.is-hidden{display:none!important}
.advanced-fields{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}
.advanced-fields summary{cursor:pointer;font-weight:750;color:var(--brand2);list-style:none;display:inline-flex;align-items:center;gap:6px}
.advanced-fields summary::-webkit-details-marker{display:none}
.form-notice{margin:0 0 16px}
.auto-value{display:flex;align-items:center;gap:8px;min-height:42px;padding:9px 12px;border:1px dashed #9fb8ac;border-radius:10px;background:#f7fbf8;color:#244b39}
.rule-summary{font-weight:650}
.rule-warning{margin-top:7px;color:var(--danger);font-size:12px}

.pdf-preview{display:flex;min-height:160px;flex-direction:column;align-items:center;justify-content:center;gap:12px;border:1px dashed var(--line);border-radius:10px;background:#fff7f4;text-decoration:none;color:var(--ink)}
.pdf-preview:hover{background:#fff0ea;text-decoration:none}.pdf-icon{display:grid;place-items:center;width:70px;height:86px;border-radius:8px;background:#b42318;color:white;font-weight:900;font-size:20px;box-shadow:var(--shadow)}

.economics-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 30px;margin-bottom:18px;border-radius:18px;color:#fff;box-shadow:var(--shadow)}
.economics-hero.profit{background:linear-gradient(135deg,#17643f,#2a9b63)}.economics-hero.loss{background:linear-gradient(135deg,#8f2019,#c44336)}
.economics-eyebrow{display:block;font-size:13px;opacity:.86}.economics-hero h2{margin:4px 0 6px;font-size:24px}.economics-main-value{font-size:38px;font-weight:900}.economics-ratio{display:flex;min-width:190px;flex-direction:column;text-align:right}.economics-ratio span,.economics-ratio small{opacity:.86}.economics-ratio b{font-size:34px}.economics-kpis .metric{text-decoration:none;color:inherit}.positive{color:#11643b}.negative{color:#b42318}
@media(max-width:720px){.economics-hero{align-items:flex-start;flex-direction:column}.economics-ratio{text-align:left}.economics-main-value{font-size:30px}}

/* PDF preview */
.pdf-preview-card{padding:0;overflow:hidden}
.pdf-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--line);background:#f7faf8}
.pdf-preview-toolbar span{font-weight:800}
.pdf-preview-toolbar small{color:var(--muted)}
.pdf-preview-frame{display:block;width:100%;height:calc(100vh - 230px);min-height:620px;border:0;background:#e9eef1}
@media(max-width:900px){.pdf-preview-frame{height:calc(100vh - 260px);min-height:520px}.pdf-preview-toolbar{align-items:flex-start;flex-direction:column;gap:4px}}

.empty-state-large{text-align:center;padding:54px 24px}.empty-state-large .empty-state-icon{font-size:56px}.empty-state-large h2{margin:12px 0 8px}.empty-state-large p{max-width:680px;margin:0 auto 22px;color:var(--muted)}
.week-preview-table th small{display:block;font-weight:400;color:var(--muted);margin-top:3px}.print-title{text-align:center;margin-bottom:18px}.print-title h2{margin:0}.print-title p{margin:5px 0 0;color:var(--muted)}
@media print{.no-print{display:none!important}.print-document{box-shadow:none;border:0;padding:0}.week-preview-table{font-size:10px}.week-preview-table th,.week-preview-table td{padding:5px}.shift-chip{padding:4px;border-radius:4px}}

/* V.02.15: unified hover feedback without underlines. */
a:hover,a:focus-visible{text-decoration:none}
a[href],button:not(:disabled),input[type="submit"]:not(:disabled),input[type="button"]:not(:disabled),input[type="reset"]:not(:disabled){transition:transform .14s ease,box-shadow .14s ease,filter .14s ease,background-color .14s ease,color .14s ease}
a[href]:not(.brand):hover,a[href]:not(.brand):focus-visible{filter:brightness(.98);text-decoration:none;background-color:rgba(31,122,77,.08);box-shadow:0 4px 14px rgba(20,64,45,.14);border-radius:7px}
.btn:hover,.btn:focus-visible,button:not(:disabled):hover,button:not(:disabled):focus-visible,input[type="submit"]:not(:disabled):hover,input[type="submit"]:not(:disabled):focus-visible,input[type="button"]:not(:disabled):hover,input[type="button"]:not(:disabled):focus-visible,input[type="reset"]:not(:disabled):hover,input[type="reset"]:not(:disabled):focus-visible{transform:translateY(-1px);box-shadow:0 7px 18px rgba(20,64,45,.18);text-decoration:none}
.table-wrap a[href]:hover,.table-wrap a[href]:focus-visible,.kv a[href]:hover,.kv a[href]:focus-visible{background:#eaf7f0;color:#105d39;border-radius:6px;box-shadow:0 2px 10px rgba(20,64,45,.12);text-decoration:none}
.data-drilldown{ text-decoration:none!important;border-bottom:0 }
.data-drilldown:hover,.data-drilldown:focus-visible{ text-decoration:none!important;border-bottom-color:transparent;box-shadow:0 3px 12px rgba(20,64,45,.14);border-radius:6px;background:#eaf7f0 }
.nav a:hover,.nav a:focus-visible,.nav-action:hover,.nav-action:focus-visible{box-shadow:0 5px 16px rgba(0,0,0,.16);transform:translateY(-1px);text-decoration:none}

/* V.02.15: every clickable link gets visible hover/focus feedback without underlining. */
a[href]:not(.brand):not(.metric-drilldown):hover,
a[href]:not(.brand):not(.metric-drilldown):focus-visible{
  background-color:rgba(31,122,77,.08);
  box-shadow:0 4px 14px rgba(20,64,45,.14);
  border-radius:7px;
  text-decoration:none!important;
}
.data-drilldown,.data-drilldown:hover,.data-drilldown:focus-visible{border-bottom:0!important;text-decoration:none!important}

/* V.02.17: per-user tooltip preference. */
.tooltips-disabled .ui-tooltip{display:none!important}
.tooltips-disabled [data-tooltip]::after{display:none!important}

/* V.02.19 — visual operator report analysis */
.report-row-green{background:linear-gradient(90deg,rgba(40,167,69,.08),transparent 72%)}
.report-row-yellow{background:linear-gradient(90deg,rgba(255,193,7,.16),transparent 72%)}
.report-row-red{background:linear-gradient(90deg,rgba(220,53,69,.14),transparent 72%)}
.report-row-green:hover,.report-row-yellow:hover,.report-row-red:hover{filter:brightness(.985)}
.report-result{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-weight:800}
.result-green{background:#e8f6ec;color:#176b35}.result-yellow{background:#fff4cf;color:#725700}.result-red{background:#fde8ea;color:#a11f2e}
.report-map-legend{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.report-map-legend span{padding:6px 10px;border-radius:999px;font-size:13px;font-weight:700}.legend-green{background:#e8f6ec;color:#176b35}.legend-yellow{background:#fff4cf;color:#725700}.legend-red{background:#fde8ea;color:#a11f2e}
.report-house-map{display:flex;flex-direction:column;gap:14px}.report-line{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fbfcfc}.report-line h3{margin:0 0 10px}.report-line-points{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.report-point{display:flex;flex-direction:column;gap:6px;padding:12px;border:2px solid transparent;border-radius:14px;min-height:126px;transition:transform .15s ease,box-shadow .15s ease}.report-point:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(28,60,45,.14)}.report-point-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.report-point-head span{font-size:12px;font-weight:700}.report-point small{line-height:1.35}.point-green{background:#eef9f1;border-color:#78c88d}.point-yellow{background:#fff8dc;border-color:#e3bd42}.point-red{background:#fff0f1;border-color:#dc6975}
.deviation-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.deviation-card{border:1px solid var(--line);border-left-width:6px;border-radius:14px;padding:14px;background:#fff}.deviation-critical{border-left-color:#d6404f;background:#fff5f6}.deviation-warning{border-left-color:#d5a800;background:#fffbee}.deviation-info{border-left-color:#3e7ecf;background:#f5f9ff}.deviation-title{display:flex;align-items:flex-start;gap:8px}.deviation-values{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.deviation-values span{display:flex;flex-direction:column;padding:8px;border-radius:10px;background:rgba(255,255,255,.75)}.deviation-values small{color:#6b7772}.deviation-card p{margin:0;line-height:1.45}.report-ok-panel{padding:16px;border-radius:14px;background:#eaf8ee;color:#176b35;font-weight:800}
.summary-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}.summary-kpi{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:16px;border:1px solid var(--line);background:#fff;box-shadow:0 6px 18px rgba(25,58,43,.06)}.summary-kpi span{color:#65736d;font-size:13px}.summary-kpi b{font-size:30px}.summary-green{border-color:#8fd1a1}.summary-yellow{border-color:#e4c45a}.summary-red{border-color:#e1848e}.summary-neutral{border-color:#b9c8c1}.report-summary-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}
.problem-bars{display:flex;flex-direction:column;gap:10px}.problem-bar{display:grid;grid-template-columns:minmax(130px,1fr) 2fr 44px;gap:10px;align-items:center;padding:8px;border-radius:10px;color:inherit;text-decoration:none}.problem-bar:hover{background:#f2f7f4}.problem-bar div{height:12px;background:#edf1ef;border-radius:999px;overflow:hidden}.problem-bar i{display:block;height:100%;background:linear-gradient(90deg,#f0bd38,#d74e5b);border-radius:999px}.problem-bar b{text-align:right}.report-help-list p{display:flex;align-items:center;gap:9px}.dot{width:13px;height:13px;border-radius:50%;display:inline-block}.dot-green{background:#45ad61}.dot-yellow{background:#e4b62f}.dot-red{background:#d94b58}
@media(max-width:700px){.report-line-points{grid-template-columns:1fr}.deviation-cards{grid-template-columns:1fr}.report-summary-grid{grid-template-columns:1fr}.problem-bar{grid-template-columns:1fr 70px}.problem-bar div{grid-column:1}.problem-bar b{grid-column:2;grid-row:1/3}}

/* V.02.19: human-friendly summaries and catalogue forms */
.friendly-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.friendly-summary-item{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f8fbf9}
.friendly-summary-item span{font-size:13px;color:var(--muted)}
.friendly-summary-item b{font-size:15px;line-height:1.35;color:var(--text)}
.friendly-form-stack{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;align-items:end}
.friendly-form-stack>label{font-weight:700;font-size:13px;color:var(--muted);align-self:center}
.friendly-form-stack input,.friendly-form-stack select{min-width:0;width:100%}
.friendly-form-stack button{width:max-content}
@media(max-width:700px){.friendly-summary-grid,.friendly-form-stack{grid-template-columns:1fr}}

/* V.02.19 friendly summaries and catalog-driven controls */
.friendly-summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.friendly-summary-card{padding:14px;border:1px solid var(--line);border-radius:14px;background:#f8fbf9;box-shadow:0 4px 14px rgba(18,58,42,.05)}
.friendly-summary-card h3{margin:0 0 10px;font-size:15px;color:var(--text)}
.friendly-chip-list{display:flex;flex-wrap:wrap;gap:7px}
.friendly-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;border:1px solid #cfe2d7;background:#edf8f1;color:#164d35;font-size:13px;line-height:1.25}
.friendly-chip.ok{background:#edf8f1;border-color:#c7e5d2;color:#155437}
.friendly-muted{color:var(--muted);font-size:13px}
.friendly-form-stack{display:grid;gap:9px}
.friendly-form-stack label{font-weight:700;font-size:13px;color:#40534b}
@media(max-width:700px){.friendly-summary-cards{grid-template-columns:1fr}}

.qr-audit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.qr-audit-card{display:block;background:#fff;border:2px solid #dce8e1;border-radius:16px;overflow:hidden;color:inherit;text-decoration:none;box-shadow:0 4px 16px rgba(21,62,44,.08)}.qr-audit-card.duplicate{border-color:#d94242;box-shadow:0 4px 22px rgba(217,66,66,.22)}.qr-audit-card img{display:block;width:100%;height:220px;object-fit:cover;background:#edf2ef}.qr-audit-meta{display:flex;flex-direction:column;gap:5px;padding:12px}.qr-audit-meta span{color:#66756f;font-size:.9rem}.qr-audit-meta strong{color:#177d4c}.qr-audit-card.duplicate strong{color:#b32222}.qr-audit-large{max-width:760px;max-height:620px;width:100%;object-fit:contain;border-radius:14px}.qr-compare{display:grid;grid-template-columns:1fr 1fr;gap:18px}.qr-compare figure{margin:0}.qr-compare img{width:100%;height:420px;object-fit:contain;background:#eef2ef;border-radius:14px}.qr-compare figcaption{padding:8px;text-align:center}@media(max-width:800px){.qr-compare{grid-template-columns:1fr}.qr-compare img{height:300px}}

/* V.02.28 — account security and TOTP setup */
.security-factor-card{margin-top:16px}
.page-head.compact{margin-bottom:12px}
.status-pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-weight:700;white-space:nowrap}
.status-pill.status-green{background:#e6f6ec;color:#17653a}
.status-pill.status-yellow{background:#fff6d8;color:#735b00}
.security-factor-details{margin-top:12px}
.totp-setup-grid{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:28px;align-items:start;margin-top:16px}
.totp-qr-panel{display:flex;justify-content:center;align-items:center;background:#fff;border:1px solid #dde8e1;border-radius:16px;padding:18px}
.totp-qr{width:min(100%,280px);height:auto;image-rendering:pixelated}
.totp-secret-box{margin:14px 0;padding:12px 14px;border:1px solid #d9e4dd;border-radius:12px;background:#f7faf8}
.totp-secret-box span{display:block;font-size:.86rem;color:#596b61;margin-bottom:6px}
.totp-secret-box code{display:block;font-size:1.05rem;font-weight:700;letter-spacing:.08em;overflow-wrap:anywhere}
.compact-steps{padding-left:22px;margin:8px 0 14px}
.compact-steps li{margin:8px 0}
@media(max-width:760px){.totp-setup-grid{grid-template-columns:1fr}.totp-qr-panel{max-width:340px;margin:0 auto}}

/* V.02.29 — organization planning and targeted finance ledger */
.planning-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}.planning-totals .metric{display:flex;flex-direction:column;gap:5px;background:var(--card,#fff);border:1px solid #dfe8e2;border-radius:14px;padding:16px;box-shadow:0 3px 12px rgba(18,58,42,.05)}.planning-totals .metric span,.planning-totals .metric small{color:#64736a;font-size:.82rem}.planning-totals .metric b{font-size:1.25rem;color:#123a2a}.planning-tabs{margin-bottom:12px}.planning-table td{vertical-align:top}.planning-table td small{display:block;color:#68756e;margin-top:5px;max-width:360px}.planning-table .money{text-align:right;white-space:nowrap}.planning-overdue{background:#fff7f6}.planning-overdue td:first-child{border-left:4px solid #b42318}.planning-badge{display:inline-block;border-radius:999px;background:#eaf3ed;color:#175b3d;padding:4px 9px;font-size:.78rem;font-weight:700}.planning-badge.status-stopped,.planning-badge.status-completed_partial{background:#fff0c2;color:#805600}.planning-badge.status-rejected{background:#f1f2f3;color:#5c6670}.planning-badge.status-completed_full{background:#d9f4e4;color:#176b46}.planning-detail-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:16px;margin-bottom:16px}.planning-detail-grid .card{margin:0}.planning-finance-forms{grid-template-columns:1fr 1fr}.stack-form{display:grid;gap:11px}.stack-form label{font-weight:650;font-size:.88rem}.stack-form input,.stack-form select,.stack-form textarea{display:block;width:100%;margin-top:5px}.stack-form textarea{min-height:82px}.preserve-lines{white-space:pre-line}.danger-text{color:#b42318}.timeline{display:grid;gap:0}.timeline>div{border-left:3px solid #c9d9cf;padding:0 0 18px 16px;margin-left:6px}.timeline>div:last-child{padding-bottom:0}.timeline span{color:#66746c}.timeline p{margin:5px 0 0;white-space:pre-line}@media(max-width:1000px){.planning-totals{grid-template-columns:1fr 1fr}.planning-detail-grid,.planning-finance-forms{grid-template-columns:1fr}}@media(max-width:640px){.planning-totals{grid-template-columns:1fr}.planning-table th:nth-child(n+5),.planning-table td:nth-child(n+5){display:none}}
