:root{color:#172033;background:#f4f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100dvh;margin:0}button{color:#172033;cursor:pointer;min-height:40px;font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:0 13px;font-weight:700}button:hover{background:#f8fafc}button:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #fb923c}h1,h2,p{margin-top:0}h1{color:#10213c;letter-spacing:0;margin-bottom:6px;font-size:32px;line-height:1.12}h2{color:#172033;letter-spacing:0;margin-bottom:0;font-size:17px}.eyebrow,.section-kicker{color:#0f766e;letter-spacing:0;text-transform:uppercase;margin:0 0 5px;font-size:12px;font-weight:800}.login-shell{background:#f4f7fb;place-items:center;min-height:100dvh;padding:24px;display:grid}.login-panel{background:#fff;border:1px solid #d8e1ed;border-radius:8px;width:min(100%,420px);padding:32px;box-shadow:0 18px 42px #0f233f1a}.login-copy,.header-copy{color:#64748b}.login-copy{margin-bottom:8px}.version-line{color:#64748b;margin:0 0 24px;font-size:13px;font-weight:700}.google-button{min-height:44px}.status-text,.error-text,.empty-text{color:#536174;margin:14px 0 0;font-size:14px}.error-text,.notice{color:#9f1239}.admin-frame{grid-template-columns:236px minmax(0,1fr);min-height:100dvh;display:grid}.sidebar{color:#dce7f5;background:#10213c;border-right:1px solid #1f3859;flex-direction:column;height:100dvh;padding:20px 14px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:4px 8px 28px;display:flex}.brand-mark{color:#fff;background:#f97316;border-radius:7px;place-items:center;width:34px;height:34px;font-size:12px;font-weight:900;display:grid}.brand strong,.brand small{display:block}.brand strong{color:#fff;font-size:15px}.brand small{color:#a9bbd0;font-size:12px}.side-nav{gap:4px;display:grid}.side-nav a{color:#b8c8da;border-radius:6px;padding:10px 12px;font-size:14px;font-weight:700;text-decoration:none}.side-nav a:hover{color:#fff;background:#193352}.side-nav a.active{color:#fff;background:#1e4c6e}.sidebar-footer{color:#b8c8da;overflow-wrap:anywhere;border-top:1px solid #2b4667;gap:10px;margin-top:auto;padding:16px 8px 4px;font-size:12px;display:grid}.sidebar-footer small{color:#839bb6;font-size:11px}.signout-button{color:#dce7f5;background:0 0;border-color:#45617f;width:fit-content;min-height:34px;font-size:12px}.signout-button:hover{background:#193352}.app-shell{width:min(100%,1440px);margin:0 auto;padding:30px 36px 42px}.topbar{justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:28px;display:flex}.header-copy{max-width:620px;margin:0;font-size:15px}.release-line{color:#718096;overflow-wrap:anywhere;margin:8px 0 0;font-size:12px;font-weight:800}.toolbar{align-items:center;gap:10px;display:flex}.refresh-button{color:#fff;background:#0f766e;border-color:#0f766e}.refresh-button:hover{background:#115e59}.notice{background:#fff1f2;border:1px solid #fecdd3;border-radius:6px;margin:0 0 16px;padding:12px 14px;font-size:14px;font-weight:700}.notice.neutral{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.range-control{background:#fff;border:1px solid #cbd5e1;border-radius:6px;gap:2px;padding:2px;display:inline-flex}.range-control button{color:#536174;border:0;border-radius:4px;min-height:34px;padding:0 10px;font-size:13px}.range-control button.active{color:#fff;background:#10213c}.overview-section,.operations-section,.analytics-section,.performance-section,.security-section{margin-top:30px}.section-intro{justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:14px;display:flex}.section-intro>p{color:#64748b;text-align:right;max-width:510px;margin:0;font-size:13px}.stats-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.stat,.panel{background:#fff;border:1px solid #d8e1ed;border-radius:7px;min-width:0}.stat{padding:16px}.stat span{color:#64748b;font-size:12px;font-weight:800;display:block}.stat strong{color:#10213c;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin-top:7px;font-size:26px;line-height:1.05;display:block}.stat.healthy strong{color:#0f766e}.stat.attention strong{color:#b45309}.primary-grid{grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr);gap:14px;margin-top:30px;display:grid}.content-grid,.analytics-grid,.performance-grid,.project-metrics-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.project-panel{overflow:hidden}.panel-header{border-bottom:1px solid #edf1f7;justify-content:space-between;align-items:flex-start;gap:12px;padding:15px 16px;display:flex}.panel-header span{color:#64748b;white-space:nowrap;border:1px solid #d8e1ed;border-radius:999px;padding:3px 7px;font-size:11px;font-weight:800}.panel-empty{padding:0 16px 16px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;display:grid}.metric-grid .stat{border:1px solid #edf1f7;border-top:0;border-left:0;border-radius:0;padding:15px}.metric-grid .stat:nth-child(2n){border-right:0}.metric-grid .stat:nth-last-child(-n+2){border-bottom:0}.metric-grid .stat strong{font-size:21px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:580px}th,td{color:#42526a;text-align:left;white-space:nowrap;font-variant-numeric:tabular-nums;border-bottom:1px solid #edf1f7;padding:13px 16px;font-size:13px}th{color:#718096;text-transform:uppercase;font-size:11px;font-weight:800}td strong{color:#172033}tbody tr:last-child td{border-bottom:0}.review-scope{color:#718096;text-overflow:ellipsis;white-space:nowrap;max-width:260px;margin-top:3px;font-size:11px;font-weight:500;display:block;overflow:hidden}.review-badge{white-space:nowrap;border-radius:999px;padding:4px 7px;font-size:11px;font-weight:800;display:inline-block}.evidence-download{color:#0f766e;border-color:#0f766e;min-height:30px;padding:0 9px;font-size:11px}.risk-low,.disposition-clear,.disposition-not-applicable{color:#166534;background:#dcfce7}.risk-medium,.disposition-clear-with-accepted-risk{color:#92400e;background:#fef3c7}.risk-high,.risk-launch-critical,.disposition-blocked{color:#be123c;background:#ffe4e6}.security-projects{gap:8px;display:grid}.security-project{border:1px solid #e2e8f0;border-radius:8px;position:relative;overflow:hidden}.security-project summary{cursor:pointer;padding:13px 14px;list-style:none}.security-project summary::-webkit-details-marker{display:none}.security-project-summary{justify-content:space-between;align-items:center;gap:12px;display:flex}.security-project-summary>div:first-child{align-items:baseline;gap:8px;min-width:0;display:flex}.security-project-summary>div:first-child strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.security-project summary small,.review-log small{color:#718096;font-size:11px}.security-project-status{justify-content:flex-end;align-items:center;gap:6px;display:flex}.security-project-status time{color:#718096;white-space:nowrap;font-size:11px}.security-current-action{white-space:nowrap;border-radius:999px;min-height:28px;padding:0 10px;font-size:11px}.security-project-detail{background:#fbfdff;border-top:1px solid #e2e8f0;padding:14px}.security-project-detail h3{margin:18px 0 8px;font-size:13px}.review-history-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.review-history-header h3{margin:0;font-size:13px;line-height:28px}.review-history-action{white-space:nowrap;border-radius:999px;min-height:28px;padding:0 9px;font-size:10px}.evidence-actions{flex-wrap:wrap;gap:8px;display:flex}.review-history{gap:8px;display:grid}.coverage-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.coverage-tile{background:#fff;border:1px solid #e2e8f0;border-top-width:4px;border-radius:7px;gap:5px;padding:10px;display:grid}.coverage-tile>p{color:#64748b;letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:10px;font-weight:800}.coverage-tile>span{color:#526072;font-size:12px}.coverage-tile>small{color:#718096;font-size:10px}.coverage-pass{border-top-color:#16a34a}.coverage-finding{border-top-color:#ea580c}.coverage-not-assessed{border-top-color:#64748b}.coverage-not-applicable{border-top-color:#475569}.review-log{background:#fff;border:1px solid #e2e8f0;border-radius:6px;grid-template-columns:1fr auto;gap:6px 12px;padding:10px;display:grid}.review-log p,.review-log>small{color:#526072;grid-column:1/-1;margin:0;font-size:12px}@media (width<=700px){.security-project summary{padding-bottom:8px;padding-right:14px}.security-project-summary{align-items:flex-start}.security-project-summary>div:first-child{gap:2px;display:grid}.security-project-status{flex-wrap:wrap}.security-project-status time{text-align:left;width:100%}.coverage-grid,.review-log{grid-template-columns:1fr}}.bars{align-items:flex-end;gap:10px;min-height:201px;padding:20px 16px 16px;display:flex;overflow-x:auto}.bar-cell{color:#718096;justify-items:center;gap:8px;min-width:32px;font-size:11px;display:grid}.bar{background:#0f766e;border-radius:4px 4px 1px 1px;width:18px}.ranked-panel,.funnel-panel{min-height:190px}.ranked-list,.funnel-list{gap:12px;padding:16px;display:grid}.ranked-row,.funnel-row{gap:6px;display:grid}.ranked-label{color:#42526a;justify-content:space-between;gap:12px;font-size:13px;display:flex}.ranked-label span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ranked-label strong{color:#172033;font-variant-numeric:tabular-nums}.perf-meta{color:#718096;font-size:11px}.performance-stats{margin-bottom:14px}.slow-pages-panel .ranked-label span{white-space:nowrap}.ranked-track,.funnel-meter{background:#e8eef5;border-radius:999px;height:6px;overflow:hidden}.ranked-track span{border-radius:inherit;background:#0f766e;height:100%;display:block}.funnel-row{color:#42526a;grid-template-columns:minmax(112px,1fr) minmax(72px,1.6fr) 34px 34px;align-items:center;font-size:12px}.funnel-row strong,.funnel-row small{text-align:right;font-variant-numeric:tabular-nums}.funnel-row small{color:#718096}.funnel-meter i{border-radius:inherit;background:#f97316;height:100%;display:block}.journey-panel{margin-top:30px;overflow:hidden}.journey-note{color:#64748b;background:#f8fafc;border-bottom:1px solid #edf1f7;margin:0;padding:10px 16px;font-size:12px}.journey-list{display:grid}.journey-item{border-bottom:1px solid #edf1f7}.journey-item:last-child{border-bottom:0}.journey-item summary{cursor:pointer;grid-template-columns:minmax(300px,1fr) auto;align-items:center;gap:16px;padding:11px 16px;list-style:none;display:grid}.journey-item summary::-webkit-details-marker{display:none}.journey-item summary:hover{background:#f8fafc}.journey-summary-main{align-items:center;gap:10px;min-width:0;display:flex}.journey-identity{color:#172033;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.journey-session,.journey-count{color:#718096;white-space:nowrap;font-size:12px}.journey-session:before,.journey-count:before{content:"·";color:#a0aec0;margin-right:10px}.journey-summary-meta{color:#718096;font-variant-numeric:tabular-nums;white-space:nowrap;justify-content:flex-end;align-items:center;gap:10px;font-size:12px;display:flex}.journey-toolbar{align-items:center;gap:8px;display:flex}.journey-toolbar>span{color:#64748b;white-space:nowrap;border:1px solid #d8e1ed;border-radius:999px;padding:3px 7px;font-size:11px;font-weight:800}.journey-order{background:#fff;border:1px solid #d8e1ed;border-radius:999px;gap:2px;padding:2px;display:inline-flex}.journey-order button{color:#64748b;border:0;border-radius:999px;min-height:26px;padding:0 8px;font-size:11px}.journey-order button.active{color:#fff;background:#10213c}.journey-chevron{color:#0f766e;font-size:18px;font-weight:900;line-height:1;transition:transform .18s ease-out}.journey-item[open] .journey-chevron{transform:rotate(180deg)}.journey-details{background:#fcfdff;border-top:1px solid #edf1f7;gap:8px;padding:12px 16px 14px 42px;display:grid}.journey-start{color:#475569;gap:10px;margin:0 0 2px;font-size:12px;display:flex}.journey-start time{color:#718096}.journey-event{color:#536174;grid-template-columns:56px max-content minmax(0,1fr);align-items:center;gap:10px;font-size:12px;display:grid}.journey-event time{color:#718096;font-variant-numeric:tabular-nums}.journey-event>span{overflow-wrap:anywhere;min-width:0}.event-pill,.project-badge{white-space:nowrap;border-radius:999px;flex:none;font-size:11px;font-weight:900;line-height:1}.event-pill{padding:5px 8px}.event-session{color:#166534;background:#dcfce7}.event-error{color:#be123c;background:#ffe4e6}.event-other{color:#075985;background:#e0f2fe}.project-badge{padding:5px 8px}.project-rumah{color:#0f766e;background:#ccfbf1}.project-routine{color:#c2410c;background:#ffedd5}.project-sistem{color:#1d4ed8;background:#dbeafe}.project-other{color:#475569;background:#e2e8f0}@media (width<=1120px){.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-metrics-list,.analytics-grid,.performance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-grid .funnel-panel,.slow-pages-panel{grid-column:span 2}}@media (width<=820px){.admin-frame{display:block}.sidebar{border-right:0;height:auto;padding:12px 16px;position:static}.brand{padding:0 0 12px}.side-nav{gap:4px;margin:0 -4px;padding:0 4px;display:flex;overflow-x:auto}.side-nav a{flex:none;padding:8px 10px}.sidebar-footer{display:none}.app-shell{padding:24px 16px 32px}}@media (width<=640px){h1{font-size:27px}.topbar,.toolbar,.section-intro{flex-direction:column;align-items:flex-start}.toolbar,.range-control{width:100%}.range-control button{flex:1}.refresh-button{width:100%}.section-intro>p{text-align:left;max-width:none}.stats-grid,.primary-grid,.project-metrics-list,.analytics-grid,.performance-grid{grid-template-columns:1fr}.analytics-grid .funnel-panel,.slow-pages-panel{grid-column:auto}.metric-grid .stat strong{font-size:19px}.journey-item summary{grid-template-columns:1fr;gap:6px}.journey-summary-main{flex-wrap:wrap;align-items:flex-start;gap:7px}.journey-identity{flex-basis:calc(100% - 100px)}.journey-toolbar,.journey-summary-meta{flex-wrap:wrap;justify-content:flex-start;align-items:flex-start}.journey-details{padding-left:16px}.journey-event{grid-template-columns:50px max-content minmax(0,1fr);gap:7px}}
