@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(./ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(./ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(./ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff")}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-condensed-latin-400-normal-DKyD6XsY.woff2) format("woff2"),url(./ibm-plex-sans-condensed-latin-400-normal-5i361Byk.woff) format("woff")}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-condensed-latin-500-normal-BqaLkUoX.woff2) format("woff2"),url(./ibm-plex-sans-condensed-latin-500-normal-BLe87hIu.woff) format("woff")}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-condensed-latin-600-normal-CRd5VyFf.woff2) format("woff2"),url(./ibm-plex-sans-condensed-latin-600-normal-6XnkKYvF.woff) format("woff")}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(./ibm-plex-sans-condensed-latin-700-normal-D8r4s4aS.woff2) format("woff2"),url(./ibm-plex-sans-condensed-latin-700-normal-D3enqrvP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(./ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(./ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(./ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff")}:root{--paper: #f2efe6;--paper-raised: #fbf9f3;--paper-sunken: #e9e4d6;--ink: #17150f;--ink-2: #4b4739;--ink-3: #857f6d;--ink-4: #a8a294;--rule: #d7d0be;--rule-strong: #b9b1a0;--amber: #b4530a;--amber-bright: #e0801f;--amber-wash: #f6e5cf;--teal: #1d665e;--teal-wash: #dce8e4;--danger: #a12b1f;--danger-wash: #f6ded9;--info: #3c5a83;--glass-fill: #d9d3c2;--resin-fill: #e8cfa8;--font-display: "IBM Plex Sans Condensed", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-body: "IBM Plex Sans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", Menlo, monospace;--shell-max: 2200px;--gutter: max(24px, calc((100vw - var(--shell-max)) / 2));--shadow-sm: 0 1px 0 rgba(23, 21, 15, .06), 0 2px 6px -2px rgba(23, 21, 15, .12);--shadow-md: 0 1px 0 rgba(23, 21, 15, .05), 0 10px 30px -14px rgba(23, 21, 15, .28);--radius: 3px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background-color:var(--paper);background-image:linear-gradient(rgba(23,21,15,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(23,21,15,.028) 1px,transparent 1px);background-size:26px 26px;color:var(--ink);font-family:var(--font-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}::selection{background:var(--amber-wash);color:var(--ink)}:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.app{min-height:100vh;display:flex;flex-direction:column}.shell{display:grid;grid-template-columns:minmax(340px,clamp(340px,22vw,408px)) minmax(0,1fr) minmax(320px,clamp(320px,21vw,392px));gap:0;flex:1;min-height:0;width:100%;max-width:var(--shell-max);margin:0 auto;border-top:1px solid var(--rule-strong)}.col-left{border-right:1px solid var(--rule);padding:22px 20px 64px;display:flex;flex-direction:column;gap:22px;background:linear-gradient(180deg,rgba(255,255,255,.35),transparent 240px);overflow-y:auto}.col-mid{padding:22px 24px 64px;min-width:0;display:flex;flex-direction:column;gap:22px}.mid-col-a,.mid-col-b,.mid-wide{display:flex;flex-direction:column;gap:20px;width:100%}.mid-col-b{gap:16px}@media(min-width:2000px){.col-mid{display:grid;grid-template-columns:minmax(0,900px) minmax(380px,1fr);align-content:start;column-gap:24px;row-gap:20px}.mid-col-a{grid-column:1;grid-row:1}.mid-col-a .profile-card{max-width:none}.mid-col-a .profile-canvas{max-width:100%}.mid-col-b{grid-column:2;grid-row:1;align-self:start}.mid-wide{grid-column:1 / -1;grid-row:2}}.col-right{border-left:1px solid var(--rule);background:linear-gradient(180deg,rgba(255,255,255,.4),transparent 260px);padding:22px 20px 64px;display:flex;flex-direction:column;gap:20px;overflow-y:auto}@media(max-width:1280px){.shell{grid-template-columns:minmax(320px,360px) minmax(0,1fr)}.col-right{grid-column:1 / -1;border-left:none;border-top:1px solid var(--rule-strong)}}@media(max-width:900px){.shell{grid-template-columns:1fr}.col-left{border-right:none;border-bottom:1px solid var(--rule-strong)}}.masthead{display:flex;align-items:center;gap:18px;padding:14px var(--gutter);background:var(--ink);color:var(--paper);position:relative;overflow:hidden}.masthead:after{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.045) 0 1px,transparent 1px 7px);pointer-events:none}.mark{width:38px;height:38px;flex:0 0 38px;position:relative;z-index:1}.masthead-title{display:flex;flex-direction:column;gap:1px;z-index:1}.masthead-title h1{font-family:var(--font-display);font-size:19px;font-weight:700;letter-spacing:.02em;margin:0;line-height:1.15}.masthead-title span{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#f2efe694}.masthead-spacer{flex:1}.masthead-meta{display:flex;align-items:center;gap:20px;z-index:1}.masthead-stat{display:flex;flex-direction:column;align-items:flex-end;gap:0;padding-left:20px;border-left:1px solid rgba(242,239,230,.16)}.masthead-stat b{font-family:var(--font-mono);font-size:15px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.25}.masthead-stat i{font-style:normal;font-size:10px;letter-spacing:.1em;color:#f2efe680;text-transform:uppercase}.actions{display:flex;gap:8px;z-index:1}.btn{border:1px solid var(--rule-strong);background:var(--paper-raised);color:var(--ink);padding:7px 13px;border-radius:var(--radius);font-size:12.5px;font-weight:500;letter-spacing:.01em;transition:background .16s ease,border-color .16s ease,transform .16s ease;white-space:nowrap}.btn:hover{background:#fff;border-color:var(--ink-3)}.btn:active{transform:translateY(1px)}.btn-dark{background:transparent;border-color:#f2efe64d;color:var(--paper)}.btn-dark:hover{background:#f2efe61a;border-color:#f2efe699}.btn-accent{background:var(--amber);border-color:var(--amber);color:#fff8ef}.btn-accent:hover{background:#c95d0c;border-color:#c95d0c}.btn-sm{padding:4px 9px;font-size:11.5px}.btn-ghost{border-color:transparent;background:transparent;color:var(--ink-3)}.btn-ghost:hover{background:var(--paper-sunken);color:var(--ink)}.btn-icon{width:26px;height:26px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:2px;font-size:14px;line-height:1}.btn[disabled]{opacity:.4;cursor:not-allowed}.panel{display:flex;flex-direction:column;gap:12px}.panel-head{display:flex;align-items:baseline;gap:10px;border-bottom:1px solid var(--ink);padding-bottom:6px}.panel-head h2{font-family:var(--font-display);font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin:0;white-space:nowrap}.panel-head .idx{font-family:var(--font-mono);font-size:10px;color:var(--amber);letter-spacing:.06em}.panel-head .extra{margin-left:auto;font-size:11px;color:var(--ink-3);font-family:var(--font-mono);letter-spacing:.04em}.panel-note{font-size:11.5px;color:var(--ink-3);line-height:1.55;margin:0}.pattern-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.pattern-card{position:relative;text-align:left;padding:9px 10px 10px;background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--radius);transition:border-color .15s ease,background .15s ease,box-shadow .15s ease;overflow:hidden}.pattern-card:hover{border-color:var(--ink-3)}.pattern-card[data-active=true]{border-color:var(--ink);background:var(--ink);color:var(--paper);box-shadow:var(--shadow-sm)}.pattern-card[data-active=true] .p-name,.pattern-card[data-active=true] .p-count{color:var(--paper)}.pattern-card[data-active=true] .p-desc{color:#f2efe699}.p-name{font-family:var(--font-display);font-size:13.5px;font-weight:600;letter-spacing:.02em;display:block;color:var(--ink)}.p-count{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;color:var(--amber);text-transform:uppercase;display:block;margin-bottom:2px}.p-desc{font-size:10.5px;line-height:1.4;color:var(--ink-3);margin-top:4px;display:block}.p-swatch{display:flex;gap:1px;margin-top:6px;height:5px}.p-swatch span{display:block;flex:1;background:var(--rule-strong)}.pattern-card[data-active=true] .p-swatch span{background:#f2efe659}.resin-list{display:flex;flex-direction:column;gap:3px}.resin-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:8px 10px;background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--radius);text-align:left;transition:all .15s ease}.resin-row:hover{border-color:var(--ink-3)}.resin-row[data-active=true]{border-color:var(--teal);background:var(--teal-wash)}.strong{font-weight:600}.resin-row .rr-main{display:flex;flex-direction:column;gap:1px;min-width:0}.resin-row .rr-name{font-family:var(--font-display);font-weight:600;font-size:13px;letter-spacing:.01em}.resin-row .rr-note{font-size:10.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resin-row .rr-temp{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-2);text-align:right;white-space:nowrap}.field{display:flex;flex-direction:column;gap:4px}.field>label,.field-label{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-family:var(--font-mono);display:flex;align-items:center;gap:6px}.field-row{display:flex;gap:8px;align-items:stretch}.input-wrap{position:relative;display:flex;align-items:center;background:var(--paper-raised);border:1px solid var(--rule-strong);border-radius:var(--radius);transition:border-color .15s ease,box-shadow .15s ease}.input-wrap:focus-within{border-color:var(--amber);box-shadow:0 0 0 3px #b4530a1a}.input-wrap input,.input-wrap select{border:0;background:transparent;padding:7px 9px;width:100%;min-width:0;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:13px;font-weight:500}.input-wrap select{appearance:none;cursor:pointer;padding-right:26px}.input-wrap input:focus,.input-wrap select:focus{outline:none}.suffix{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3);padding-right:9px;white-space:nowrap;letter-spacing:.02em}.select-caret{position:absolute;right:9px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--ink-3);font-size:9px}.input-plain{border:0;border-bottom:1px solid var(--rule-strong);background:transparent;padding:4px 2px;font-family:var(--font-mono);font-size:12.5px;width:100%;min-width:0}.input-plain:focus{outline:none;border-bottom-color:var(--amber)}.area-hero .input-wrap{background:var(--paper-raised);border-width:1px 1px 1px 3px;border-color:var(--rule-strong);border-left-color:var(--amber)}.area-hero .input-wrap input{font-size:26px;font-weight:500;letter-spacing:-.03em;padding:10px 12px}.area-hero .suffix{font-size:13px;padding-right:12px}.hint{font-size:11px;color:var(--ink-3);line-height:1.5}.hint code{font-family:var(--font-mono);font-size:10.5px;background:var(--paper-sunken);padding:1px 4px;border-radius:2px}.segmented{display:inline-flex;border:1px solid var(--rule-strong);border-radius:var(--radius);overflow:hidden;background:var(--paper-raised)}.segmented button{border:0;background:transparent;padding:5px 10px;font-size:11.5px;font-family:var(--font-display);letter-spacing:.03em;color:var(--ink-3);border-right:1px solid var(--rule);transition:all .14s ease}.segmented button:last-child{border-right:0}.segmented button[data-active=true]{background:var(--ink);color:var(--paper)}.segmented button:hover:not([data-active=true]){background:var(--paper-sunken);color:var(--ink)}.stack{display:flex;flex-direction:column;gap:0;border:1px solid var(--rule-strong);border-radius:var(--radius);overflow:hidden;background:var(--paper-raised)}.stack-row{display:grid;grid-template-columns:26px 1fr auto;gap:8px;align-items:center;padding:7px 8px;border-bottom:1px dashed var(--rule);position:relative;transition:background .14s ease}.stack-row:last-child{border-bottom:0}.stack-row:hover,.stack-row[data-hover=true]{background:var(--amber-wash)}.stack-row .ord{font-family:var(--font-mono);font-size:10px;color:var(--ink-4);text-align:center;font-variant-numeric:tabular-nums}.stack-row .sr-body{display:flex;flex-direction:column;gap:2px;min-width:0}.stack-row .sr-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.kind-tag{font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;padding:1px 4px;border-radius:2px;background:var(--paper-sunken);color:var(--ink-2);white-space:nowrap}.kind-tag[data-kind=csm]{background:var(--glass-fill);color:#3d3826}.kind-tag[data-kind=woven]{background:#c9c2ae;color:#2f2b1d}.kind-tag[data-kind=veil]{background:var(--teal-wash);color:var(--teal)}.kind-tag[data-kind=primer],.kind-tag[data-kind=topcoat]{background:var(--amber-wash);color:var(--amber)}.kind-tag[data-kind=putty]{background:#e6e0d0;color:var(--ink-3)}.sr-amount{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-2);line-height:1.45;display:block}.sr-amount b{font-weight:600;color:var(--ink)}.sr-actions{display:flex;gap:1px;opacity:0;transition:opacity .14s ease}.stack-row:hover .sr-actions,.stack-row:focus-within .sr-actions{opacity:1}.stack-row .mini-input{width:54px;border:1px solid var(--rule);background:#fff;border-radius:2px;padding:2px 4px;font-family:var(--font-mono);font-size:11px;text-align:right}.stack-row .mini-input:focus{outline:1px solid var(--amber);border-color:var(--amber)}.add-layer-bar{display:flex;gap:4px;flex-wrap:wrap;padding-top:2px}.add-layer-bar .btn{background:var(--paper-raised)}.profile-card{background:var(--paper-raised);border:1px solid var(--rule-strong);border-radius:var(--radius);padding:0;position:relative;overflow:hidden;box-shadow:var(--shadow-md)}.profile-head{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--rule);background:linear-gradient(180deg,#fff,var(--paper-raised))}.profile-head h2{font-family:var(--font-display);font-size:14px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin:0}.profile-head .scale-note{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);letter-spacing:.04em}.profile-head .head-right{margin-left:auto;display:flex;gap:16px;align-items:center}.big-stat{display:flex;flex-direction:column;align-items:flex-end}.big-stat b{font-family:var(--font-mono);font-size:22px;font-weight:600;letter-spacing:-.045em;line-height:1;font-variant-numeric:tabular-nums}.big-stat i{font-style:normal;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-top:3px}.profile-canvas{display:block;width:100%;max-width:900px;height:auto;margin:0 auto}.profile-legend{display:flex;flex-wrap:wrap;gap:14px;padding:10px 16px 14px;border-top:1px dashed var(--rule);font-size:10.5px;color:var(--ink-3);font-family:var(--font-mono)}.legend-item{display:flex;align-items:center;gap:5px}.legend-swatch{width:10px;height:10px;border:1px solid rgba(23,21,15,.25);display:block}.gauge-card{background:var(--paper-raised);border:1px solid var(--rule-strong);border-radius:var(--radius);padding:14px 16px 12px}.gauge-title{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}.gauge-title h3{font-family:var(--font-display);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin:0}.gauge-title span{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3)}.gauge-track{position:relative;height:34px;display:flex;gap:2px;margin-bottom:6px}.gauge-band{position:relative;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;color:var(--ink-3);border-bottom:2px solid var(--rule-strong);transition:all .2s ease}.gauge-band[data-active=true]{color:var(--ink);border-bottom-color:var(--amber)}.gauge-band[data-active=true]:before{content:"";position:absolute;inset:8px 0 2px;background:var(--amber-wash);z-index:0}.gauge-band span{position:relative;z-index:1}.gauge-marker{position:absolute;top:-6px;bottom:-4px;width:2px;background:var(--ink);transition:left .28s cubic-bezier(.2,.8,.2,1)}.gauge-marker:before{content:"";position:absolute;top:-3px;left:-3px;width:8px;height:8px;background:var(--ink);transform:rotate(45deg)}.gauge-marker-label{position:absolute;top:-22px;transform:translate(-50%);font-family:var(--font-mono);font-size:10px;font-weight:600;background:var(--ink);color:var(--paper);padding:1px 5px;border-radius:2px;white-space:nowrap;transition:left .28s cubic-bezier(.2,.8,.2,1)}.gauge-foot{font-size:11px;color:var(--ink-3);line-height:1.5;margin-top:14px}.mat-table{width:100%;border-collapse:collapse;font-size:12px}.mat-table th{text-align:right;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:500;padding:0 0 5px;border-bottom:1px solid var(--ink)}.mat-table th:first-child{text-align:left}.mat-table td{padding:7px 0;border-bottom:1px solid var(--rule);vertical-align:baseline}.mat-table td.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:8px}.mat-table tr[data-group=true] td{border-bottom:1px solid var(--rule);padding-top:14px;font-family:var(--font-display);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--amber);font-weight:600}.mat-name{display:flex;flex-direction:column;gap:1px}.mat-name b{font-weight:500;font-size:12.5px}.mat-name i{font-style:normal;font-size:10px;color:var(--ink-3);font-family:var(--font-mono)}.mat-table tfoot td{padding-top:12px;border-bottom:0;font-weight:600}.mat-table tfoot tr.total td{border-top:2px solid var(--ink);border-bottom:0;padding-top:8px;font-family:var(--font-mono);font-size:14px}.mat-table tfoot tr.total td.label{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;font-size:11px;color:var(--ink-2)}.mat-table tfoot tr.per-m2 td{border-bottom:0;padding-top:2px;font-size:11px;color:var(--ink-3);font-weight:400}.callouts{display:flex;flex-direction:column;gap:5px}.callout{display:flex;gap:8px;padding:8px 10px;border-radius:2px;font-size:11.5px;line-height:1.5;border-left:2px solid var(--rule-strong);background:var(--paper-sunken)}.callout[data-level=warn]{background:var(--amber-wash);border-left-color:var(--amber)}.callout[data-level=error]{background:var(--danger-wash);border-left-color:var(--danger);color:#7a1f16}.callout[data-level=info]{background:var(--teal-wash);border-left-color:var(--teal)}.callout .co-mark{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;padding-top:1px;color:var(--ink-3);flex:0 0 auto}.callout[data-level=warn] .co-mark{color:var(--amber)}.callout[data-level=error] .co-mark{color:var(--danger)}.callout[data-level=info] .co-mark{color:var(--teal)}.kpi-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden}.kpi{background:var(--paper-raised);padding:10px 11px;display:flex;flex-direction:column;gap:2px}.kpi b{font-family:var(--font-mono);font-size:17px;font-weight:600;letter-spacing:-.04em;font-variant-numeric:tabular-nums;line-height:1.15}.kpi span{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-family:var(--font-mono)}.kpi small{font-size:10px;color:var(--ink-3)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}.detail-line{display:flex;flex-direction:column;gap:0;border-left:1px solid var(--rule);padding-left:8px}.detail-line span{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-family:var(--font-mono)}.detail-line b{font-family:var(--font-mono);font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}.slider-row{display:flex;flex-direction:column;gap:3px}.slider-head{display:flex;align-items:baseline;justify-content:space-between;font-size:11px}.slider-head b{font-family:var(--font-mono);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:18px;background:transparent;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:2px;background:var(--rule-strong)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:11px;height:11px;background:var(--ink);border-radius:50%;margin-top:-4.5px;transition:transform .12s ease}input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.25);background:var(--amber)}input[type=range]::-moz-range-track{height:2px;background:var(--rule-strong)}input[type=range]::-moz-range-thumb{width:11px;height:11px;background:var(--ink);border:0;border-radius:50%}.geo-tabs{display:flex;flex-wrap:wrap;gap:3px}.geo-tab{border:1px solid var(--rule);background:var(--paper-raised);padding:4px 8px;font-size:11px;border-radius:2px;color:var(--ink-2);transition:all .14s ease}.geo-tab[data-active=true]{border-color:var(--teal);background:var(--teal-wash);color:var(--teal);font-weight:600}.geo-tab:hover:not([data-active=true]){border-color:var(--ink-3)}.geo-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.geo-breakdown{border-top:1px dashed var(--rule);padding-top:8px;display:flex;flex-direction:column;gap:3px;font-size:11px}.geo-line{display:flex;align-items:baseline;gap:6px}.geo-line span{color:var(--ink-3)}.geo-line em{font-style:normal;font-family:var(--font-mono);font-size:10px;color:var(--ink-4)}.geo-line b{margin-left:auto;font-family:var(--font-mono);font-weight:500;font-variant-numeric:tabular-nums}.geo-total{display:flex;align-items:baseline;justify-content:space-between;border-top:1px solid var(--ink);margin-top:5px;padding-top:5px;font-family:var(--font-mono)}.geo-total b{font-size:15px;font-weight:600;letter-spacing:-.03em}.meta-bar{display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:14px;align-items:end;padding:12px 16px;background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--radius)}.meta-bar .field>label{font-size:9.5px}.print-only{display:none}@media print{@page{size:A4;margin:14mm 12mm}body{background:#fff;background-image:none;font-size:10.5pt}.masthead,.shell,.actions,.no-print{display:none!important}.print-only{display:block!important}.print-sheet{display:block}.print-sheet h1{font-family:var(--font-display);font-size:18pt;margin:0 0 2mm;letter-spacing:.02em}.print-sheet .print-sub{font-family:var(--font-mono);font-size:8.5pt;color:#555;margin-bottom:6mm;border-bottom:1px solid #000;padding-bottom:2mm}.print-meta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2mm 6mm;margin-bottom:5mm;font-size:9pt}.print-meta-grid div{display:flex;gap:2mm;border-bottom:1px dotted #bbb;padding-bottom:1mm}.print-meta-grid span{color:#666;min-width:16mm}table.print-table{width:100%;border-collapse:collapse;font-size:9pt;margin-bottom:4mm}table.print-table th{border-bottom:1px solid #000;text-align:right;font-size:8pt;padding:1.5mm 1mm}table.print-table th:first-child,table.print-table td:first-child{text-align:left}table.print-table td{border-bottom:1px solid #ddd;padding:1.5mm 1mm;text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}table.print-table tfoot td{border-top:1.5px solid #000;font-weight:600}.print-note{font-size:8pt;color:#444;line-height:1.6;border-top:1px solid #000;padding-top:2mm;margin-top:4mm}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim{color:var(--ink-3)}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.rise{animation:rise .42s cubic-bezier(.22,.7,.28,1) both}.rise-1{animation-delay:.04s}.rise-2{animation-delay:.09s}.rise-3{animation-delay:.14s}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.mobile-warn{display:none}@media(max-width:900px){.masthead{flex-wrap:wrap;gap:10px 14px;padding:12px 16px}.masthead-title h1{font-size:17px;white-space:nowrap}.masthead-meta{order:3;width:100%;gap:0;border-top:1px solid rgba(242,239,230,.16);padding-top:8px}.masthead-stat{flex:1;align-items:flex-start;padding-left:0;padding-right:12px;border-left:0;border-right:1px solid rgba(242,239,230,.14)}.masthead-stat:last-child{border-right:0}.actions{order:4;width:100%;flex-wrap:wrap}.actions .btn{flex:1 1 auto;text-align:center;padding:8px 10px}}@media(max-width:620px){.pattern-grid,.meta-bar{grid-template-columns:1fr}.col-left,.col-mid,.col-right{padding-left:14px;padding-right:14px}.profile-head{flex-wrap:wrap;gap:10px}.profile-head .head-right{margin-left:0;width:100%;justify-content:flex-start;gap:26px}.mat-table{font-size:11.5px}}
