/* CrankLens: a quiet, readable workspace. All assets remain local. */
:root{color-scheme:light;--ink:#203b34;--muted:#52645c;--paper:#f5f6f2;--line:#d5ddd5;--accent:#e4fc91;--red:#a63726;--white:#fff;--mono:ui-monospace,Consolas,monospace;--warning:#795019;--soft:#eaf0e9;font-family:Segoe UI,system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:16px}
*{box-sizing:border-box}body{margin:0}html{scroll-behavior:smooth;scroll-padding-top:24px}button,input{font:inherit}a{color:inherit;text-underline-offset:3px}::selection{background:#d5edab;color:#203b34}:focus-visible{outline:3px solid #236b9b;outline-offset:4px}[hidden]{display:none!important}
.skip{position:fixed;top:-80px;left:16px;z-index:10;background:white;padding:14px}.skip:focus{top:12px}
.sidebar{width:224px;position:fixed;inset:0 auto 0 0;padding:32px 20px;background:var(--ink);color:#f6f5ef;display:flex;flex-direction:column;overflow:auto}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;font-size:23px;font-weight:700;letter-spacing:-.03em}.brand small{display:block;font-size:10px;font-weight:400;letter-spacing:.06em;margin-top:5px;color:#c3d4ca}.sidebar nav{display:grid;gap:5px;margin-top:42px}.sidebar nav a{font-size:14px;text-decoration:none;padding:13px 12px;border-radius:6px;color:#d5e2d9;min-height:44px}.sidebar nav a:hover{background:#2d483f}.sidebar nav .nav-active{background:#3c594d;color:white;font-weight:600}.local-note{margin-top:auto;padding-top:35px;font-size:13px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:7px}.local-note p{font-size:12px;line-height:1.6;color:#c3d4ca}.side-bottom{font-size:11px;line-height:1.9;border-top:1px solid #496056;padding-top:18px;margin-top:18px;color:#c3d4ca}
main{margin-left:224px;padding:0 40px;max-width:1600px}.topbar{min-height:80px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0}.topbar>span{font-size:13px;color:var(--muted)}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.button{cursor:pointer;border:1px solid #bdcbbf;padding:10px 15px;min-height:44px;border-radius:6px;font-size:14px;font-weight:600;background:transparent;color:var(--ink);transition:background-color .15s,border-color .15s}.button:hover:not(:disabled){background:#e3eade;border-color:#7b927d}.button:active:not(:disabled){background:#d7e2d2}.button:disabled{cursor:not-allowed;color:#68766d;background:#edf0e9;border-color:#d8dfd5}.primary,.dark{background:var(--ink);color:white;border-color:var(--ink)}.primary:hover:not(:disabled),.dark:hover:not(:disabled){background:#355b4b;color:white}.button[aria-pressed=true]{background:#e3eccf;border-color:#6e8356}.hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:32px 0 24px}h1{font-size:32px;line-height:1.2;letter-spacing:-.03em;margin:0;font-weight:650}.intro{font-size:15px;line-height:1.6;color:var(--muted);margin:10px 0 0;max-width:65ch}.tag{display:inline-block;font-size:12px;color:var(--muted);white-space:nowrap;padding:5px 0}
.connection{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;background:white;border:1px solid var(--line);border-radius:12px}.connection>div:first-child{min-width:0}.status-pill{font-size:13px;font-weight:600;padding:5px 9px;background:#edf0e9;border-radius:5px;display:inline-block}.status-pill.connected{background:#e3f1cc;color:#34502a}.connection p{font-size:14px;line-height:1.5;color:var(--muted);margin:10px 0 0;max-width:70ch}.notice{background:#fff2de;border:1px solid #dfc393;border-radius:8px;color:#6b4515;padding:16px;font-size:14px;line-height:1.6}.source-note{font-size:12px;line-height:1.6;color:var(--muted);margin:12px 0 20px}.source-note.historical{background:#f4e9d4;padding:10px 14px;color:#795019;border-radius:6px}
.session-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:24px 0 32px}.session-overview>div,.session-overview>a{min-width:0;text-decoration:none}.session-overview span{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.session-overview strong{font-size:15px;font-weight:600;line-height:1.5}.session-overview a:hover strong{text-decoration:underline}
.section{padding:28px 0 36px;border-top:1px solid var(--line)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}h2{font-size:23px;line-height:1.3;letter-spacing:-.02em;font-weight:650;margin:0}h3{font-size:16px;line-height:1.4}.component-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.component-card{padding:20px;min-width:0}.component-card+.component-card{border-left:1px solid var(--line)}.component-card h3{margin:0 0 10px}.component-card p{font-size:13px;line-height:1.8;margin:0;color:var(--muted);overflow-wrap:anywhere}.component-card .product{font-size:19px;font-weight:600;color:var(--ink);margin-bottom:12px;font-variant-numeric:tabular-nums}.details{margin-top:18px;border:1px solid var(--line);border-radius:8px;padding:14px 16px;font-size:14px}details summary{cursor:pointer;min-height:24px;line-height:1.6}details summary:hover{color:#295e48}.table-scroll{overflow:auto;border-radius:4px}table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.6;margin-top:14px;font-variant-numeric:tabular-nums}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:anywhere}th{font-weight:600;color:var(--muted);background:#edf1e9}td{max-width:320px}tbody tr:hover{background:#eef2e9}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.metric{padding:20px;min-width:0;border-bottom:1px solid var(--line)}.metric:not(:last-child){border-right:1px solid var(--line)}#metric-speed{grid-column:span 2}.metric p{font-size:13px;color:var(--muted);margin:0}.metric .value{font-size:30px;font-weight:600;line-height:1.3;font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--ink);margin:12px 0;overflow-wrap:anywhere}.metric .unit{font-size:14px;font-weight:400;letter-spacing:0;color:var(--muted);margin-left:7px}.metric small{font-size:12px;line-height:1.7;color:var(--muted);display:block}.metric.live .sample-state{color:#356120}.metric.live .sample-state:before{content:'';display:inline-block;width:6px;height:6px;background:#427326;border-radius:50%;margin-right:6px}.metric.stale .sample-state{color:var(--warning)}.metric.unavailable .value{color:var(--muted)}.sample-time{font-variant-numeric:tabular-nums}.caption{font-size:13px;line-height:1.65;color:var(--muted);margin:16px 0 0;max-width:90ch}.section-intro{font-size:14px;color:var(--muted);line-height:1.6;margin:0 0 18px}
.issues-grid{display:grid;gap:20px}.issue-group{min-width:0;padding:0 0 8px}.issue-group h3{margin:8px 0}.issue-group>p{margin:6px 0 14px}.issue-group p{font-size:14px;line-height:1.6;color:var(--muted)}.issue-summary{font-size:14px;line-height:1.7;padding:16px 18px;background:var(--soft);border-radius:8px;margin:0 0 24px}.issue-detail{border-bottom:1px solid var(--line);padding:14px 0}.issue-detail summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;font-size:14px}.issue-detail summary strong:before{content:'+';display:inline-block;width:20px;font-weight:400}.issue-detail[open] summary strong:before{content:'−'}.issue-code{font:12px var(--mono);grid-column:1;margin-left:20px;color:var(--muted)}.severity-tag{font-size:12px;grid-column:2;grid-row:1;color:var(--muted)}.severity-error .severity-tag{color:var(--red)}.severity-warning .severity-tag{color:var(--warning)}.issue-detail[open]{padding:16px;background:#fff}.issue-detail h4{font-size:14px;margin:18px 0 6px}.issue-detail ul{padding-left:22px}.issue-detail li{font-size:14px;line-height:1.7;color:var(--muted)}
.limit-grid,.usage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:8px 0 20px}.limit,.usage-card{min-width:0}.limit p,.usage-card p{font-size:13px;color:var(--muted);margin:0}.limit strong,.usage-card strong{display:block;font-size:25px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.4;margin:12px 0;overflow-wrap:anywhere}.limit small,.usage-card small{display:block;font-size:12px;color:var(--muted);line-height:1.6}.mode-block{margin-top:24px}.mode-block h3{margin:0}.mode-block p{font:12px var(--mono);color:var(--muted)}.mode-block table{margin-top:10px}.guide{display:grid;grid-template-columns:1fr 1.4fr;gap:24px}.guide p{font-size:14px;color:var(--muted);line-height:1.7}.guide ol{margin:0;padding-left:24px;font-size:14px;line-height:1.7}.guide li{margin-bottom:16px;padding-left:8px}.guide b{display:block}.guide details{grid-column:1/-1;font-size:14px}pre{font:12px/1.6 var(--mono);max-height:270px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted)}footer{padding:32px 0 24px;font-size:13px;color:var(--muted)}footer strong{font-size:18px;color:var(--ink);margin-right:18px}footer p{font-size:12px;line-height:1.6}.empty{font-size:14px;color:var(--muted);padding:18px 0}
@media(min-width:1500px){main{padding:0 64px}}
@media(max-width:1100px){.sidebar{width:200px;padding:28px 16px}main{margin-left:200px;padding:0 26px}.topbar>span{display:none}.connection{align-items:flex-start;flex-direction:column}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#metric-speed{grid-column:auto}.metric:last-child{grid-column:span 2}}
@media(max-width:760px){html{scroll-padding-top:16px}.sidebar{position:relative;width:auto;padding:20px;display:block}.brand{font-size:22px}.sidebar nav{display:flex;overflow-x:auto;gap:6px;margin-top:20px;padding:2px 2px 8px}.sidebar nav a{flex-shrink:0}.local-note,.side-bottom{display:none}main{margin-left:0;padding:0 20px}.topbar{min-height:70px;padding:14px 0}.topbar .button{font-size:13px;padding:9px 12px}.hero{padding:24px 0}.hero .tag{display:none}h1{font-size:27px}.intro{font-size:14px}.connection{padding:18px}.session-overview{grid-template-columns:1fr;gap:16px}.session-overview>div,.session-overview>a{display:flex;justify-content:space-between;gap:16px}.session-overview span{margin:0}.session-overview strong{text-align:right;font-size:14px}.section{padding:24px 0 30px}.section-head{align-items:flex-start;flex-wrap:wrap}h2{font-size:22px}.component-grid{grid-template-columns:1fr}.component-card+.component-card{border-left:0;border-top:1px solid var(--line)}.component-card{padding:18px}.metric{padding:16px}.metric .value{font-size:26px}.limit-grid,.usage-grid{grid-template-columns:1fr;gap:18px}.limit,.usage-card{display:grid;grid-template-columns:1fr auto;gap:5px 12px;padding-bottom:14px;border-bottom:1px solid var(--line)}.limit strong,.usage-card strong{margin:0;font-size:22px}.limit small,.usage-card small{grid-column:1/-1}.guide{grid-template-columns:1fr}.issue-detail summary{grid-template-columns:1fr}.severity-tag{grid-column:1;grid-row:auto;margin-left:20px}.issue-code{grid-row:auto}table{min-width:560px}footer span{display:block;margin-top:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

#print-report,.report-toolbar{display:none}.report-preview>main,.report-preview>.sidebar,.report-preview>.skip{display:none}.report-preview #print-report{display:block;padding:85px 0 30px}.report-preview .report-toolbar{display:flex;justify-content:center;gap:12px;position:fixed;inset:0 0 auto;background:var(--paper);padding:15px;border-bottom:1px solid var(--line);z-index:5}.report-page{position:relative;width:210mm;min-height:297mm;margin:0 auto 25px;padding:17mm 16mm 22mm;background:white;box-shadow:0 3px 18px #203b3420;font-size:10px;line-height:1.55;overflow-wrap:anywhere}.report-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:2px solid var(--ink);margin-bottom:18px}.report-header strong{font-size:24px;letter-spacing:-1px}.report-header span{font:8px var(--mono)}.report-page h1{font-size:26px;letter-spacing:-1px;line-height:1.2;margin:10px 0}.report-page h2{font-size:14px;letter-spacing:-.3px}.report-page h3{font-size:10px;margin:9px 0 3px}.report-source,.report-meta{font-size:8px;color:var(--muted)}.report-page table{font-size:9px;table-layout:fixed;margin:14px 0}.report-page th,.report-page td{padding:6px;max-width:none}.report-page footer{position:absolute;bottom:10mm;left:16mm;right:16mm;border-top:1px solid var(--line);padding:8px 0 0;font-size:8px}.report-issue{padding:14px 0;border-top:1px solid var(--line);break-inside:avoid}.report-issue p{margin:7px 0}.report-issue ul{padding-left:17px;margin:4px 0}.report-bar{display:grid;grid-template-columns:1fr auto;gap:5px;margin:9px 0}.report-bar svg{grid-column:1/-1;width:100%;height:12px;display:block;fill:#547b4f}
@media(max-width:730px){.usage-grid{grid-template-columns:1fr}.report-preview #print-report{overflow:auto;padding-left:10px;padding-right:10px}}
@media print{@page{size:A4;margin:12mm 14mm}body{background:white}.no-print,body>main,body>.sidebar,body>.skip{display:none!important}#print-report{display:block!important;padding:0!important}.report-page{width:auto;min-height:270mm;margin:0;padding:0 0 15mm;box-shadow:none;break-after:page;font-size:9pt;line-height:1.4}.report-page:last-child{break-after:auto}.report-page h1{font-size:20pt}.report-page h2{font-size:12pt}.report-page h3{font-size:8.5pt}.report-page table{font-size:8pt}.report-page th,.report-page td{padding:4px}.report-page footer{left:0;right:0;bottom:0;font-size:7pt}.report-header{margin-bottom:12px}.report-source,.report-meta{font-size:7pt}.report-issue{padding:10px 0}.report-issue p{margin:5px 0}thead{display:table-header-group}tr{break-inside:avoid}a{color:inherit;text-decoration:none}}
