@import url("scanner.css?v=20260711.3");

:root {
    --surface: #f3f6f9;
    --surface-strong: #ffffff;
    --surface-soft: #f8fafc;
    --ink: #122033;
    --muted: #64748b;
    --primary: #0f766e;
    --primary-hover: #0b5f59;
    --primary-soft: #ccfbf1;
    --accent: #06b6d4;
    --danger: #dc2626;
    --danger-soft: #fee2e2;
    --warning: #d97706;
    --line: #dde5ed;
    --sidebar: #0b1220;
    --topbar: #111b2c;
    --shadow-subtle: 0 8px 22px rgba(15, 23, 42, .07);
    --shadow-float: 0 20px 50px rgba(15, 23, 42, .18);
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
}
body { background:var(--surface); color:var(--ink); }
.skip-link { position:fixed; top:.5rem; left:.5rem; z-index:2000; padding:.7rem 1rem; border-radius:8px; background:#fff; color:#0b1220; font-weight:800; transform:translateY(-150%); }
.skip-link:focus { transform:translateY(0); }
:where(a,button,input,select,textarea,summary):focus-visible { outline:3px solid #06b6d4; outline-offset:3px; }
.sidebar { background:var(--sidebar); padding:1.25rem .85rem; }
.sidebar-logo { display:flex; align-items:center; padding:.75rem .65rem 1.4rem; margin:0; text-decoration:none; }
.sidebar-brand-logo { display:block; width:min(100%,205px); height:auto; object-fit:contain; object-position:left center; transition:opacity .18s ease,transform .18s ease; }
.sidebar-logo:hover .sidebar-brand-logo { opacity:.94; transform:translateY(-1px); }
.sidebar { overflow-x:hidden; }
.mobile-nav-backdrop { display:none; }
.sidebar-menu-wrapper { width:100%; min-width:0; padding:0; overflow-x:hidden; overflow-y:auto; }
.nav-section { margin:1.15rem .75rem .4rem; color:#71819a; font-size:.66rem; font-weight:800; letter-spacing:.12em; }
.nav-link { display:flex; width:100%; min-width:0; gap:.8rem; align-items:center; padding:.7rem .82rem; margin:.15rem 0; color:#cbd5e1; border-radius:8px; border-left:3px solid transparent; text-decoration:none; font-size:.9rem; transition:background .18s ease,color .18s ease,border .18s ease; }
.nav-link span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nav-link:hover { color:#fff; background:#152238; }
.nav-link.active { color:#fff; background:#123240; border-left-color:#22d3ee; }
.main-wrapper { padding-top:0; background:var(--surface); }
.topbar { position:relative!important; top:auto!important; right:auto; left:auto; z-index:900; width:100%; height:72px; flex:0 0 72px; margin:0!important; transform:none!important; background:var(--topbar); color:#fff; border:0; box-shadow:0 3px 14px rgba(15,23,42,.14); padding:0 2rem; }
.sidebar-collapsed-pref .sidebar { transform:translateX(-280px); }
.sidebar-collapsed-pref .main-wrapper { margin-left:0; }
.page-title h1 { color:#fff; font-size:1.35rem; }
.btn-sandwich,.icon-button { display:grid; place-items:center; width:40px; height:40px; border:1px solid rgba(255,255,255,.12); border-radius:9px; background:rgba(255,255,255,.08); color:#fff; cursor:pointer; text-decoration:none; box-shadow:none; transition:.18s ease; }
.btn-sandwich { border-color:#0891b2; background:#0891b2; color:#fff; }
.btn-sandwich:hover { border-color:#06a6c7; background:#06a6c7; transform:none; }
.btn-sandwich:active { background:#0e7490; transform:none; box-shadow:none; }
.icon-button:hover { background:rgba(255,255,255,.16); transform:translateY(-1px); color:#fff; }
.topbar-actions { display:flex; align-items:center; gap:.65rem; }
.active-organization-chip { display:flex; align-items:center; gap:.55rem; max-width:280px; padding:.48rem .7rem; border:1px solid #d7e1ea; border-radius:10px; background:#fff; color:#334155; text-decoration:none; }
.active-organization-chip:not(.is-static):hover { border-color:#67c4d5; background:#f0fbfd; }
.active-organization-chip>span:last-child { display:flex; min-width:0; flex-direction:column; }
.active-organization-chip small { color:#64748b; font-size:.62rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.active-organization-chip strong { overflow:hidden; font-size:.78rem; text-overflow:ellipsis; white-space:nowrap; }
.active-organization-dot { width:8px; height:8px; flex:0 0 auto; border-radius:50%; background:#16a34a; box-shadow:0 0 0 3px #dcfce7; }
.active-organization-logo { width:26px; height:26px; flex:0 0 auto; border-radius:6px; object-fit:contain; background:#f8fafc; }
.active-organization-summary { margin-top:.65rem!important; color:#334155!important; }
.profile-menu { position:relative; }
.profile-trigger { display:flex; align-items:center; gap:.7rem; min-width:180px; padding:.4rem .55rem; border:1px solid rgba(255,255,255,.12); border-radius:10px; color:#fff; background:rgba(255,255,255,.07); cursor:pointer; text-align:left; }
.profile-trigger:hover { background:rgba(255,255,255,.13); }
.profile-avatar { display:grid; place-items:center; width:34px; height:34px; flex:0 0 auto; border-radius:9px; background:#0e7490; color:#fff; font-weight:800; }
.profile-trigger-copy { display:flex; flex:1; flex-direction:column; min-width:0; }
.profile-trigger-copy strong { overflow:hidden; font-size:.85rem; text-overflow:ellipsis; white-space:nowrap; }
.profile-trigger-copy small { color:#9fb0c6; font-size:.68rem; }
.profile-chevron { color:#94a3b8; }
.profile-dropdown { position:absolute; top:calc(100% + 10px); right:0; width:250px; padding:.5rem; border:1px solid var(--line); border-radius:12px; background:#fff; color:var(--ink); box-shadow:var(--shadow-float); opacity:0; visibility:hidden; transform:translateY(-7px) scale(.98); transform-origin:top right; transition:.18s ease; }
.profile-dropdown.is-open { opacity:1; visibility:visible; transform:translateY(0) scale(1); }
.profile-dropdown-head { display:flex; flex-direction:column; gap:.2rem; margin:.2rem .25rem .45rem; padding:.65rem; border-bottom:1px solid var(--line); }
.profile-dropdown-head span { color:var(--muted); font-size:.76rem; overflow:hidden; text-overflow:ellipsis; }
.profile-dropdown a,.profile-logout { display:block; width:100%; padding:.67rem .75rem; border:0; border-radius:8px; background:transparent; color:var(--ink); font:inherit; font-size:.85rem; text-align:left; text-decoration:none; cursor:pointer; }
.profile-dropdown a:hover,.profile-logout:hover { background:#f1f5f9; }
.profile-logout { color:var(--danger); }
.content-body { padding:2rem; }
.page-shell { max-width:1500px; margin:0 auto; }
.page-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:1.35rem; }
.page-intro h2 { margin:.15rem 0 0; font-size:1.45rem; letter-spacing:-.02em; }
.page-intro p { margin:.3rem 0 0; color:var(--muted); }
.eyebrow { color:#0e7490; font-size:.68rem; font-weight:800; letter-spacing:.12em; }
.content-card,.surface-card,.profile-summary { padding:1.25rem; margin-bottom:1.25rem; border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--surface-strong); box-shadow:var(--shadow-subtle); }
.section-heading { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1rem; }
.section-heading h2,.section-heading h3 { margin:.15rem 0 0; }
.table-container { width:100%; overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius-md); }
.data-table { width:100%; border-collapse:collapse; background:#fff; }
.data-table th { padding:.72rem .8rem; background:#f6f8fb; color:#53657b; font-size:.7rem; text-align:left; text-transform:uppercase; letter-spacing:.055em; white-space:nowrap; }
.data-table td { padding:.78rem .8rem; border-top:1px solid #edf1f5; vertical-align:middle; }
.data-table tbody tr { transition:background .15s ease; }
.data-table tbody tr:hover { background:#f8fbfd; }
.status-badge { display:inline-flex; align-items:center; padding:.27rem .55rem; border-radius:6px; background:var(--primary-soft); color:var(--primary); font-size:.72rem; font-weight:800; }
.status-badge.warning { background:#fef3c7; color:#92400e; }
.status-badge.danger { background:var(--danger-soft); color:#991b1b; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.45rem; min-height:38px; padding:.6rem .9rem; border:1px solid transparent; border-radius:8px; font-family:inherit; font-size:.84rem; font-weight:700; text-decoration:none; cursor:pointer; transition:background .17s ease,border .17s ease,transform .17s ease,box-shadow .17s ease; }
.btn:hover { transform:translateY(-1px); }
.btn-primary { color:#fff; background:var(--primary); box-shadow:0 5px 12px rgba(15,118,110,.18); }
.btn-primary:hover { background:var(--primary-hover); }
.btn-secondary { color:#334155; background:#fff; border-color:#cfd9e4; box-shadow:none; }
.btn-secondary:hover { background:#f8fafc; border-color:#aebdcd; }
.btn-danger { color:#fff; background:var(--danger); }
.btn-danger:hover { background:#b91c1c; }
.btn-ghost { color:#475569; background:transparent; }
.btn-ghost:hover { background:#eef2f6; }
.btn svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.btn-symbol { font-size:1.15rem; line-height:1; }
.btn-create { color:#fff; background:#0f766e; border-color:#0f766e; box-shadow:0 6px 14px rgba(15,118,110,.2); }
.btn-create:hover { background:#0b5f59; border-color:#0b5f59; }
.btn-outline-primary { color:#0f766e; background:#fff; border-color:#0f9488; }
.btn-outline-primary:hover { color:#0b5f59; background:#ecfdf5; border-color:#0b7d73; }
.btn-save { color:#fff; background:#2563a8; border-color:#2563a8; box-shadow:0 5px 12px rgba(37,99,168,.18); }
.btn-save:hover { background:#1e5189; border-color:#1e5189; }
.btn-expand { color:#3f5065; background:#fff; border-color:#8b99aa; box-shadow:none; }
.btn-expand:hover { color:#243447; background:#eef2f6; border-color:#64748b; }
.btn-pdf { color:#713246; background:#fff; border-color:#9b6172; box-shadow:none; }
.btn-pdf:hover { color:#642c3e; background:#f5e8ec; border-color:#855064; }
.toolbar-separator { width:1px; height:34px; margin:0 .15rem; background:#cbd5e1; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.form-grid .wide { grid-column:1/-1; }
.form-field label { display:block; margin-bottom:.38rem; color:#475569; font-size:.78rem; font-weight:700; }
.form-control { width:100%; box-sizing:border-box; padding:.65rem .75rem; border:1px solid #cfd9e4; border-radius:8px; background:#fff; color:var(--ink); box-shadow:none; }
.form-control:focus { outline:0; border-color:#0891b2; box-shadow:0 0 0 3px rgba(8,145,178,.12); }
textarea.form-control { min-height:88px; resize:vertical; }
.field-hint { margin:-.12rem 0 .6rem; color:var(--muted); font-size:.76rem; }
.checkbox-card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:.65rem; max-height:260px; padding:.7rem; overflow-x:hidden; overflow-y:auto; border:1px solid #cfd9e4; border-radius:10px; background:#f8fafc; }
.checkbox-card-grid>div { min-width:0; }
.checkbox-card-grid label { display:flex; align-items:flex-start; gap:.65rem; height:100%; margin:0; padding:.72rem .78rem; border:1px solid #dce5ed; border-radius:9px; background:#fff; color:#334155; font-size:.82rem; cursor:pointer; transition:border .16s ease,background .16s ease,transform .16s ease; }
.checkbox-card-grid label:hover { border-color:#67c4d5; background:#f0fbfd; transform:translateY(-1px); }
.checkbox-card-grid input[type="checkbox"] { width:17px; height:17px; flex:0 0 auto; margin:.05rem 0 0; accent-color:var(--primary); cursor:pointer; }
.checkbox-card-grid label:has(input:checked) { border-color:#0e91a8; background:#e8f9fb; box-shadow:inset 3px 0 #0891b2; }
.boolean-field { grid-column:1/-1; }
.switch-control { display:flex!important; align-items:center; gap:.75rem; width:max-content; max-width:100%; margin:0!important; padding:.7rem .8rem; border:1px solid #d7e1ea; border-radius:10px; background:#f8fafc; cursor:pointer; }
.form-checkbox { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.switch-track { position:relative; display:block; width:42px; height:24px; flex:0 0 auto; border-radius:999px; background:#cbd5e1; transition:background .18s ease; }
.switch-track span { position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 2px 5px rgba(15,23,42,.2); transition:transform .18s ease; }
.form-checkbox:checked+.switch-track { background:var(--primary); }
.form-checkbox:checked+.switch-track span { transform:translateX(18px); }
.form-checkbox:focus-visible+.switch-track { outline:3px solid rgba(8,145,178,.2); outline-offset:2px; }
.switch-copy { display:flex; flex-direction:column; }
.switch-copy strong { color:#334155; font-size:.8rem; }
.switch-copy small { color:var(--muted); font-size:.72rem; font-weight:400; }
.actions-row { display:flex; justify-content:flex-end; gap:.75rem; margin-top:1rem; }
.empty-state { padding:2rem; text-align:center; color:var(--muted); }
.message-stack { margin-bottom:1rem; }
.section-header { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:1.25rem; }
.section-header h2 { margin:.2rem 0; }
.section-header p { color:var(--muted); }
.content-grid { display:grid; grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr); gap:1.25rem; align-items:start; }
.panel-card,.detail-card { padding:1.2rem; border:1px solid var(--line); border-radius:var(--radius-md); background:#fff; box-shadow:var(--shadow-subtle); }
.panel-card>h3,.detail-card>h3 { margin-bottom:.8rem; }
.detail-card { margin-bottom:.8rem; box-shadow:none; }
.detail-card summary { cursor:pointer; }
.filter-bar { display:flex; flex-wrap:wrap; align-items:end; gap:.75rem; }
.filter-bar label { min-width:150px; color:#475569; font-size:.78rem; font-weight:700; }
.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(140px,1fr)); gap:.65rem; overflow-x:auto; }
.calendar-day { min-height:130px; padding:.75rem; border:1px solid var(--line); border-radius:10px; background:#f8fafc; }
.calendar-day.is-selected { border-color:#0891b2; box-shadow:inset 0 0 0 2px rgba(8,145,178,.15); }
.calendar-day h3 { margin-bottom:.6rem; font-size:.85rem; }
.calendar-event { display:flex; flex-direction:column; gap:.1rem; margin-bottom:.45rem; padding:.55rem; border-left:3px solid var(--primary); border-radius:6px; background:#fff; font-size:.76rem; }
.calendar-event small,.muted { color:var(--muted); }
.table-responsive { width:100%; overflow-x:auto; }
.table-responsive table { width:100%; border-collapse:collapse; }
.table-responsive th,.table-responsive td { padding:.7rem; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.table-responsive th { color:#475569; font-size:.72rem; text-transform:uppercase; }
pre { max-width:100%; padding:.75rem; overflow:auto; border-radius:8px; background:#0b1220; color:#e2e8f0; white-space:pre-wrap; overflow-wrap:anywhere; }
.app-message { padding:.8rem 1rem; margin-bottom:.5rem; border-left:4px solid #0284c7; border-radius:8px; background:#e0f2fe; color:#075985; }
.app-message.success { border-color:#16a34a; background:#dcfce7; color:#166534; }
.app-message.error { border-color:#dc2626; background:#fee2e2; color:#991b1b; }
.field-error { display:block; margin-top:.3rem; color:var(--danger); }
.profile-layout { display:grid; grid-template-columns:290px minmax(0,1fr); gap:1.25rem; }
.profile-summary { align-self:start; text-align:center; }
.profile-avatar-large { width:74px; height:74px; margin:0 auto 1rem; border-radius:18px; font-size:1.6rem; }
.profile-summary h2 { margin:0; }
.profile-summary>p { margin:.25rem 0 1.25rem; color:var(--muted); }
.profile-meta { display:flex; justify-content:space-between; gap:1rem; padding:.7rem 0; border-top:1px solid var(--line); text-align:left; font-size:.82rem; }
.profile-meta span { color:var(--muted); }
.account-security { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1.5rem; padding:1rem; border:1px solid var(--line); border-radius:10px; background:#f8fafc; }
.account-security p { margin:.2rem 0 0; color:var(--muted); font-size:.82rem; }
.app-modal-backdrop { position:fixed; inset:0; z-index:980; background:rgba(5,12,24,.42); opacity:0; visibility:hidden; backdrop-filter:blur(4px); transition:opacity .22s ease,visibility .22s ease; }
.app-modal-backdrop.is-open { opacity:1; visibility:visible; }
.app-modal-panel { position:fixed; top:50%; left:50%; z-index:990; display:flex; flex-direction:column; width:min(920px,calc(100vw - 40px)); max-height:min(84vh,780px); overflow:hidden; border:1px solid rgba(255,255,255,.75); border-radius:16px; background:#fff; box-shadow:0 28px 70px rgba(8,15,28,.28); opacity:0; visibility:hidden; transform:translate(-50%,-46%) scale(.97); transition:opacity .22s ease,transform .26s cubic-bezier(.22,.8,.26,1),visibility .22s ease; }
.app-modal-panel.is-open { opacity:1; visibility:visible; transform:translate(-50%,-50%) scale(1); }
.app-modal-header { display:flex; flex:0 0 auto; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1.2rem 1.35rem; border-bottom:1px solid var(--line); background:#f8fafc; }
.app-modal-header h2 { margin:.2rem 0; font-size:1.35rem; }
.app-modal-header p { margin:0; color:var(--muted); }
.app-modal-close { display:grid; place-items:center; width:40px; height:40px; flex:0 0 auto; border:1px solid #d5dee7; border-radius:9px; background:#fff; color:var(--ink); font-size:1.3rem; cursor:pointer; transition:.17s ease; }
.app-modal-close:hover { border-color:#aebdcd; background:#eef2f6; }
.app-modal-body { flex:1 1 auto; min-height:0; padding:1.3rem; overflow-y:auto; }
.app-modal-action-end { display:flex; width:max-content; margin:1rem 0 0 auto; }
.app-modal-actions { display:flex; justify-content:flex-end; gap:.7rem; margin-top:1.25rem; }
.table-actions { display:flex; align-items:center; justify-content:flex-end; gap:.4rem; }
.table-actions form { margin:0; }
.document-detail-modal,.project-detail-modal,.task-detail-modal { width:min(1120px,calc(100vw - 40px)); }
.detail-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.7rem; margin-bottom:1rem; }
.detail-facts span { padding:.75rem .85rem; border-left:3px solid #0891b2; border-radius:8px; background:#eef8fb; }
.detail-facts small { display:block; color:#64748b; font-size:.66rem; font-weight:800; text-transform:uppercase; }
.detail-facts strong { display:block; margin-top:.2rem; color:#24364b; font-size:.82rem; }
.detail-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; align-items:start; }
.detail-columns>section,.detail-action-grid>form,.relation-summary,.review-form,.compact-form { padding:1rem; border:1px solid var(--line); border-radius:10px; background:#f8fafc; }
.detail-columns h3,.detail-action-grid h3,.review-form h3,.compact-form h3,.relation-summary h3 { margin:.1rem 0 .8rem; font-size:1rem; }
.compact-list { display:flex; flex-direction:column; gap:.55rem; margin:0; padding:0; list-style:none; }
.compact-list li { display:flex; flex-direction:column; gap:.15rem; padding:.65rem .75rem; border:1px solid #e2e8f0; border-radius:8px; background:#fff; font-size:.8rem; }
.compact-list li span,.compact-list li small { color:var(--muted); font-size:.74rem; }
.compact-list li a { color:#0f766e; font-size:.74rem; font-weight:800; }
.list-heading { display:flex; align-items:center; justify-content:space-between; gap:.7rem; }
.detail-action-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1rem; }
.detail-action-grid form { display:flex; flex-direction:column; gap:.7rem; }
.review-form { display:grid; grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr) auto; align-items:end; gap:.7rem; margin-top:1rem; }
.review-form h3 { grid-column:1/-1; margin-bottom:0; }
.review-note { display:flex; flex-direction:column; gap:.25rem; padding:.75rem .9rem; border-left:3px solid #d97706; border-radius:8px; background:#fffbeb; color:#78350f; font-size:.8rem; }
.archive-action { display:flex; justify-content:flex-end; margin:0; padding:0 1.3rem 1.25rem; }
.compact-form { display:flex; flex-direction:column; gap:.7rem; margin-top:1rem; }
.compact-form .form-field { display:flex; flex-direction:column; gap:.35rem; }
.relation-summary { margin-top:1rem; }
.relation-summary p { margin:.55rem 0 0; color:#53657b; font-size:.8rem; line-height:1.5; }
.calculation-note { margin:1rem 0 0; padding:.75rem .85rem; border-left:3px solid #0891b2; border-radius:8px; background:#eef8fb; color:#53657b; font-size:.78rem; }
.project-workspace { display:flex; flex-direction:column; gap:1rem; }
.project-tracking { padding-top:1rem; border-top:1px solid var(--line); }
.execution-timeline { position:relative; display:flex; flex-direction:column; gap:.75rem; margin:0; padding:0 0 0 2.5rem; list-style:none; }
.execution-timeline:before { content:''; position:absolute; top:10px; bottom:10px; left:14px; width:2px; background:#cbd5e1; }
.execution-timeline li { position:relative; display:flex; gap:.75rem; }
.execution-timeline li>span { position:absolute; left:-2.5rem; z-index:1; display:grid; place-items:center; width:30px; height:30px; border:3px solid #fff; border-radius:50%; background:#0f8b83; box-shadow:0 0 0 1px #99d6d2; color:#fff; font-size:.68rem; font-weight:900; }
.execution-timeline li>div { width:100%; padding:.7rem .8rem; border:1px solid var(--line); border-radius:8px; background:#fff; }
.execution-timeline p { margin:.22rem 0; color:#53657b; font-size:.76rem; }
.execution-timeline small { color:#64748b; font-size:.68rem; }
.execution-timeline .timeline-empty { display:block; margin-left:-2.5rem; padding:.8rem; border-radius:8px; background:#f8fafc; color:#64748b; }
.task-history-section { margin-top:1rem; padding:1rem; border:1px solid var(--line); border-radius:10px; background:#f8fafc; }
.task-history-section h3 { margin:.1rem 0 1rem; }
.evidence-card { display:flex; flex-direction:column; gap:.15rem; margin-top:1rem; padding:.75rem .85rem; border:1px solid #99d6d2; border-radius:8px; background:#f0fdfa; color:#0f766e; text-decoration:none; }
.evidence-card span { color:#53657b; font-size:.74rem; }
.confirmation-modal { width:min(560px,calc(100vw - 40px)); }
.confirmation-header { align-items:center; }
.confirmation-icon { display:grid; place-items:center; width:42px; height:42px; flex:0 0 auto; border-radius:10px; background:#fee2e2; color:#b91c1c; font-size:1.3rem; font-weight:900; }
.danger-text { color:#b91c1c; }
.confirmation-warning { display:flex; flex-direction:column; gap:.2rem; margin:1rem 0; padding:.85rem 1rem; border-left:4px solid #dc2626; border-radius:8px; background:#fff1f2; }
.confirmation-warning span,.confirmation-note { color:var(--muted); font-size:.82rem; }.confirmation-note { line-height:1.5; }
.task-modal { width:min(980px,calc(100vw - 40px)); }
.task-modal>form { display:flex; flex:1 1 auto; flex-direction:column; min-height:0; overflow:hidden; }
.task-modal>form>.app-modal-body { min-height:0; overflow-x:hidden; overflow-y:auto; scrollbar-width:thin; scrollbar-color:#94a3b8 #eef2f6; }
.task-modal>form>.app-modal-body::-webkit-scrollbar { width:9px; }
.task-modal>form>.app-modal-body::-webkit-scrollbar-track { background:#eef2f6; border-radius:10px; }
.task-modal>form>.app-modal-body::-webkit-scrollbar-thumb { background:#94a3b8; border:2px solid #eef2f6; border-radius:10px; }
.task-modal>form>.app-modal-body::-webkit-scrollbar-thumb:hover { background:#64748b; }
.task-modal>form .app-modal-actions { position:sticky; bottom:-1.3rem; z-index:2; margin:1.25rem -1.3rem -1.3rem; padding:1rem 1.3rem; border-top:1px solid var(--line); background:#fff; }
.task-modal textarea { min-height:130px; max-height:220px; resize:vertical; }
.creation-modal { width:min(1040px,calc(100vw - 40px)); }
.creation-modal form {
    display:flex;
    flex:1 1 auto;
    flex-direction:column;
    min-height:0;
    overflow:hidden;
}
.creation-modal .app-modal-body {
    min-height:0;
    overflow-x:hidden;
    overflow-y:auto;
    scrollbar-width:thin;
    scrollbar-color:#94a3b8 #eef2f6;
}
.creation-modal .app-modal-body::-webkit-scrollbar { width:9px; }
.creation-modal .app-modal-body::-webkit-scrollbar-track { background:#eef2f6; border-radius:10px; }
.creation-modal .app-modal-body::-webkit-scrollbar-thumb { background:#94a3b8; border:2px solid #eef2f6; border-radius:10px; }
.creation-modal .app-modal-body::-webkit-scrollbar-thumb:hover { background:#64748b; }
.creation-modal textarea { min-height:110px; max-height:190px; resize:vertical; }
.kpi-summary-strip { display:flex; flex-wrap:wrap; gap:.75rem 1.25rem; padding:.8rem 1rem; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--muted); font-size:.76rem; }
.kpi-summary-strip span,.kpi-name-cell { display:flex; align-items:center; gap:.5rem; }
.kpi-dot { display:inline-block; width:9px; height:9px; flex:0 0 auto; border-radius:50%; background:#94a3b8; }
.kpi-dot.good { background:#16a34a; }.kpi-dot.warning { background:#d97706; }.kpi-dot.danger { background:#dc2626; }.kpi-dot.pending { background:#94a3b8; }
.kpi-row { cursor:pointer; transition:background .16s ease; }
.kpi-row:hover,.kpi-row:focus-visible { background:#f6fafc; outline:none; }
.kpi-name-cell span { display:flex; flex-direction:column; gap:.16rem; }
.kpi-name-cell small,.table-subcopy { display:block; margin-top:.18rem; color:var(--muted); font-size:.72rem; font-weight:500; }
.kpi-state { display:inline-flex; padding:.3rem .55rem; border-radius:7px; font-size:.72rem; font-weight:800; white-space:nowrap; }
.kpi-state.good { background:#dcfce7; color:#166534; }.kpi-state.warning { background:#fef3c7; color:#92400e; }.kpi-state.danger { background:#fee2e2; color:#991b1b; }.kpi-state.pending { background:#e2e8f0; color:#475569; }
.btn-table-action { border:1px solid #cbd5e1; border-radius:7px; padding:.38rem .62rem; background:#fff; color:#334155; font:inherit; font-size:.72rem; font-weight:700; cursor:pointer; white-space:nowrap; }
.btn-table-action:hover { border-color:#0f8b83; color:#0f766e; background:#f0fdfa; }
.muted-copy { color:var(--muted); font-size:.76rem; }
.kpi-detail-modal { width:min(1180px,calc(100vw - 40px)); }
.kpi-detail-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; margin-bottom:1.25rem; }
.kpi-detail-summary article { padding:.85rem 1rem; border-left:4px solid #0891b2; border-radius:9px; background:#eef8fb; }
.kpi-detail-summary span { display:block; margin-bottom:.25rem; color:var(--muted); font-size:.7rem; font-weight:800; text-transform:uppercase; }
.kpi-detail-summary strong { color:var(--ink); font-size:1.02rem; }
.kpi-detail-grid { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(280px,.75fr); gap:1rem; align-items:start; }
.measurement-card { padding:1rem; border:1px solid var(--line); border-radius:11px; background:#f8fafc; }
.measurement-card .form-field { margin-bottom:.75rem; }
.measurement-card .form-control { background:#fff; }
.measurement-submit { width:100%; margin-top:.25rem; }
.measurement-card-wide { width:min(760px,100%); margin:0 auto; }
.kpi-live-preview { display:none; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; margin-top:.8rem; }
.kpi-live-preview.has-values { display:grid; }
.kpi-live-preview span { display:flex; flex-direction:column; gap:.15rem; padding:.65rem .75rem; border-left:3px solid #0891b2; border-radius:8px; background:#eef8fb; }
.kpi-live-preview small { color:#64748b; font-size:.66rem; font-weight:800; text-transform:uppercase; }
.kpi-live-preview strong { color:#0f5f73; font-size:.9rem; }
.kpi-value-control { position:relative; }
.kpi-value-control .form-control { width:100%; }
.kpi-value-control.has-prefix .form-control { padding-left:3.1rem; }
.kpi-value-control.has-suffix .form-control { padding-right:5.5rem; }
.kpi-fixed-affix { position:absolute; top:50%; z-index:2; color:#475569; font-size:.82rem; font-weight:800; pointer-events:none; transform:translateY(-50%); user-select:none; }
.kpi-prefix { left:1rem; }.kpi-suffix { right:1rem; }
.compact-history { max-height:360px; overflow:auto; border:1px solid var(--line); border-radius:9px; }
.evidence-link { color:#0f766e; font-size:.76rem; font-weight:700; }
.kpi-inline-actions { display:flex; align-items:center; gap:.55rem; white-space:nowrap; }
.kpi-inline-actions button { padding:.2rem 0; border:0; border-bottom:1px solid transparent; background:transparent; color:#0f766e; font:inherit; font-size:.76rem; font-weight:800; cursor:pointer; }
.kpi-inline-actions button:hover { border-bottom-color:#0f766e; }
.kpi-inline-actions span { width:1px; height:14px; background:#cbd5e1; }
.kpi-row-actions { display:flex; align-items:center; gap:.45rem; white-space:nowrap; }
.btn-kpi-action { min-width:82px; height:36px; padding:.4rem .65rem; font-size:.72rem; }
.kpi-measure-modal { width:min(1040px,calc(100vw - 40px)); }
.kpi-measure-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr); gap:1rem; align-items:start; }
.kpi-definition { padding:1rem; border:1px solid var(--line); border-radius:11px; background:#fff; }
.kpi-definition>p { color:#53657b; line-height:1.6; }
.kpi-definition dl,.version-timeline dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; margin:1rem 0 0; }
.kpi-definition dl div,.version-timeline dl div { padding:.65rem .75rem; border-radius:8px; background:#f8fafc; }
.kpi-definition dt,.version-timeline dt { color:#64748b; font-size:.66rem; font-weight:800; text-transform:uppercase; }
.kpi-definition dd,.version-timeline dd { margin:.2rem 0 0; color:#24364b; font-size:.8rem; font-weight:650; }
.version-note { display:flex; flex-direction:column; gap:.2rem; margin-top:1rem; padding:.75rem .85rem; border-left:3px solid #2563a8; border-radius:7px; background:#eff6ff; }
.version-note strong { color:#1e4f87; font-size:.8rem; }.version-note span { color:#53657b; font-size:.73rem; }
.kpi-history-modal { width:min(900px,calc(100vw - 40px)); }
.timeline-intro { display:flex; flex-direction:column; gap:.15rem; margin-bottom:1.25rem; padding:.9rem 1rem; border-left:4px solid #0f8b83; border-radius:9px; background:#f0fdfa; }
.timeline-intro strong { font-size:1.2rem; }.timeline-intro span { color:#53657b; font-size:.76rem; }
.version-timeline { position:relative; display:flex; flex-direction:column; gap:1rem; margin:0; padding:0 0 0 3.5rem; list-style:none; }
.version-timeline:before { content:''; position:absolute; top:18px; bottom:18px; left:20px; width:2px; background:#cbd5e1; }
.version-timeline>li { position:relative; }
.timeline-marker { position:absolute; top:.8rem; left:-3.5rem; z-index:1; display:grid; place-items:center; width:42px; height:42px; border:3px solid #fff; border-radius:50%; background:#0f8b83; box-shadow:0 0 0 1px #99d6d2; color:#fff; font-size:.72rem; font-weight:900; }
.version-timeline article { padding:1rem; border:1px solid var(--line); border-radius:11px; background:#fff; box-shadow:var(--shadow-subtle); }
.version-timeline article>header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding-bottom:.7rem; border-bottom:1px solid var(--line); }
.version-timeline article>header div { display:flex; flex-direction:column; gap:.15rem; }
.version-timeline time { color:#64748b; font-size:.72rem; }
.timeline-value { color:#0f766e; font-size:1rem; font-weight:900; }
.version-timeline .timeline-wide { grid-column:1/-1; }
.timeline-empty { padding:1rem; border-radius:9px; background:#f8fafc; color:#64748b; }
.current-version-label { display:inline-flex; margin-left:.45rem; padding:.18rem .42rem; border-radius:999px; background:#dcfce7; color:#166534; font-size:.62rem; vertical-align:middle; }
.restored-version-note { margin-top:.2rem; color:#2563a8; font-size:.7rem; font-weight:700; }
.restore-version-form { display:flex; justify-content:flex-end; margin-top:.8rem; padding-top:.8rem; border-top:1px solid var(--line); }
.restore-version-form .btn { font-size:.74rem; }
body.app-modal-open { overflow:hidden; }
.login-page { min-height:100vh; display:grid; place-items:center; padding:1rem; background:#eaf0f5; }
.login-card { width:min(420px,100%); padding:2rem; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:var(--shadow-float); }
.login-brand { display:flex; flex-direction:column; align-items:flex-start; gap:.55rem; margin-bottom:1.5rem; }
.login-brand-logo { display:block; width:min(100%,330px); height:auto; }
.login-card h1 { margin:0; }
.login-card p { color:var(--muted); }
.auth-help { margin:1rem 0 0; text-align:center; font-size:.8rem; }
.auth-help a { color:var(--primary); font-weight:700; }
.login-card .form-field input { width:100%; }
@media(max-width:900px){.sidebar,.sidebar-collapsed-pref .sidebar,.app-container.sidebar-collapsed .sidebar{z-index:1100;transform:translateX(-100%)}.app-container.mobile-nav-open .sidebar{transform:translateX(0)}.main-wrapper,.sidebar-collapsed-pref .main-wrapper,.app-container.sidebar-collapsed .main-wrapper{width:100%;margin-left:0}.mobile-nav-backdrop{position:fixed;inset:0;z-index:1090;border:0;background:rgba(5,12,24,.55);opacity:0;visibility:hidden;display:block;transition:opacity .2s,visibility .2s}.mobile-nav-open .mobile-nav-backdrop{opacity:1;visibility:visible}.profile-layout,.content-grid{grid-template-columns:1fr}.profile-trigger-copy{display:none}.profile-trigger{min-width:auto}.active-organization-chip{max-width:170px}.active-organization-chip small{display:none}.content-body{padding:1.25rem}.form-grid,.detail-columns,.detail-action-grid{grid-template-columns:1fr}.page-intro,.section-header{align-items:flex-start;flex-direction:column}.checkbox-card-grid{grid-template-columns:1fr}.kpi-detail-grid,.kpi-measure-layout{grid-template-columns:1fr}.kpi-detail-summary,.detail-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.review-form{grid-template-columns:1fr}.table-container{overscroll-behavior-inline:contain}.data-table{min-width:720px}.btn,.btn-table-action,button,input,select{min-height:44px}input[type=file]{padding:.75rem;background:#f8fafc}.topbar{padding:0 1rem}.page-title h1{font-size:1.1rem}}
@media(max-width:600px){.topbar{height:auto;min-height:64px;gap:.5rem}.page-title{display:none}.topbar-actions{gap:.35rem}.active-organization-chip{max-width:145px;padding:.4rem .5rem}.icon-button{display:none}.content-body{padding:1rem}.page-intro{margin-bottom:1rem}.page-intro .btn,.page-intro>button,.page-intro>a{width:100%}.surface-card,.content-card,.panel-card{padding:1rem}.actions-row,.app-modal-actions{flex-direction:column}.actions-row .btn,.app-modal-actions .btn{width:100%}.app-modal-panel{inset:10px;top:auto;left:auto;width:auto;max-height:none;border-radius:12px;transform:translateY(16px)}.app-modal-panel.is-open{transform:none}.app-modal-header,.app-modal-body{padding:1rem}.detail-facts,.kpi-detail-summary{grid-template-columns:1fr}.form-control,textarea,select,input{font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
