/* The calculator extends PrintLab's light laboratory palette. */
.cost-section { scroll-margin-top: 5rem; }
.cost-section [hidden] { display: none !important; }
.cost-mobile-result { display:none; }
.cost-summary { scroll-margin-top:10rem; }
.cost-notice { display:flex; gap:1rem; padding:1rem 1.25rem; margin:0 0 2rem; border-left:2px solid var(--accent); background:rgba(var(--accent-rgb),.045); font-size:.9rem; line-height:1.6; }
.cost-notice strong { flex-shrink:0; font-weight:500; color:var(--accent); }
.cost-layout { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:3rem; align-items:start; }
.cost-form { min-width:0; }
.cost-group { border:0; padding:0; margin:0 0 2rem; min-width:0; }
.cost-group legend { display:flex; gap:.8rem; align-items:center; width:100%; font-family:'Space Grotesk',sans-serif; font-size:1.2rem; font-weight:400; margin-bottom:1.25rem; }
.cost-group legend span { color:var(--accent); font-family:'Inter',sans-serif; font-size:.8rem; }
.cost-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.1rem 1.25rem; }
.cost-field { min-width:0; }
.cost-field label { display:block; font-size:.875rem; line-height:1.4; margin-bottom:.5rem; color:var(--ink); }
.cost-input { display:flex; align-items:center; border:1px solid var(--line-2); border-radius:3px; background:var(--surface); transition:border-color .2s,box-shadow .2s; }
.cost-input:focus-within { border-color:var(--accent); box-shadow:0 0 0 3px rgba(var(--accent-rgb),.09); }
.cost-input input { width:100%; min-width:0; padding:.7rem .7rem; background:transparent; border:0; outline:0; font:400 1rem 'Inter',sans-serif; color:var(--ink); font-variant-numeric:tabular-nums; }
.cost-input span { font-size:.8rem; color:var(--ink-70); white-space:nowrap; padding-right:.65rem; }
.cost-input:has([aria-invalid="true"]) { border-color:#a12b19; background:#fff4ef; }
.cost-field select { width:100%; min-height:46px; padding:.7rem .6rem; border:1px solid var(--line-2); background:var(--surface); font:400 .95rem 'Inter',sans-serif; border-radius:3px; color:var(--ink); }
.cost-field small,.cost-help { display:block; margin:.55rem 0 0; font-size:.8rem; color:var(--ink-70); line-height:1.6; }
.cost-help strong { font-weight:500; color:var(--ink); }
.cost-group > .cost-help { margin-top:.85rem; }
.cost-examples { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; }
.cost-examples > span { font-size:.8rem; color:var(--ink-70); margin-right:.3rem; }
.cost-examples button { min-height:36px; padding:.4rem .75rem; background:transparent; border:1px solid var(--line-2); border-radius:30px; font:400 .8rem 'Inter',sans-serif; color:var(--ink); transition:background .2s,border-color .2s; }
.cost-examples button:hover { border-color:var(--accent); background:rgba(var(--accent-rgb),.06); }
.cost-examples + .cost-help { margin-bottom:1.25rem; }
.cost-settings { border-top:1px solid var(--line-2); }
.cost-settings > summary { display:flex; align-items:center; gap:.5rem; padding:1.15rem 0; font-size:1rem; list-style:none; }
.cost-settings > summary::-webkit-details-marker { display:none; }
.cost-settings > summary::after { content:'+'; margin-left:auto; font-size:1.3rem; color:var(--accent); }
.cost-settings[open] > summary::after { content:'−'; }
.cost-settings > summary span { font-size:.75rem; color:var(--ink-70); margin-left:auto; }
.cost-settings-in { padding:0 0 1.6rem; }
.cost-margin { border-top:1px solid var(--line-2); padding-top:1.75rem; margin-top:1rem; }
.cost-margin legend { float:left; }
.cost-margin .cost-fields { clear:both; }
.cost-margin .cost-help { margin:0; align-self:center; }
.cost-form-actions { display:flex; flex-direction:column; align-items:flex-start; gap:.75rem; }
.cost-form-actions span { font-size:.75rem; color:var(--ink-70); }
.cost-error { padding:1rem; margin-bottom:1rem; font-size:.9rem; color:#922913; background:#fff0e9; border-left:2px solid #922913; }
.cost-summary { position:sticky; top:6rem; padding:2rem; border:1px solid var(--line-2); background:var(--surface); box-shadow:0 15px 45px rgba(48,44,36,.035); border-radius:5px; min-width:0; }
.cost-summary > .index { color:var(--accent); margin-bottom:1.5rem; }
.cost-result-label { font-size:.95rem; margin-bottom:.45rem; }
.cost-price { display:flex; align-items:baseline; gap:.5rem; flex-wrap:wrap; font-family:'Space Grotesk',sans-serif; line-height:1.1; }
.cost-currency { font-size:1.1rem; color:var(--ink-70); }
.cost-price strong { font-size:clamp(2.4rem,3.8vw,4rem); font-weight:400; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; letter-spacing:-.04em; }
.cost-muted { color:var(--ink-70); font-size:.8rem; margin-top:.55rem; }
.cost-unit { color:var(--accent); font-size:1.1rem; margin-top:.9rem; font-variant-numeric:tabular-nums; }
.cost-breakdown { margin:1.4rem 0 0; font-size:.875rem; }
.cost-breakdown > div { display:flex; justify-content:space-between; gap:1rem; margin-bottom:.7rem; line-height:1.45; }
.cost-breakdown dt { color:var(--ink-70); }
.cost-breakdown dd { margin:0; text-align:right; font-variant-numeric:tabular-nums; flex-shrink:0; }
.cost-breakdown .cost-subtotal { border-top:1px solid var(--line-2); padding-top:.9rem; margin-top:.9rem; }
.cost-subtotal dt,.cost-profit dt,.cost-profit dd { color:var(--ink); font-weight:500; }
.cost-bar { display:flex; height:5px; border-radius:5px; overflow:hidden; margin-top:1.2rem; }
.cost-bar span { transition:width .3s ease; }
#cost-cost-bar { background:#63625b; }
#cost-margin-bar { background:var(--accent); }
.cost-bar-legend { display:flex; justify-content:space-between; font-size:.75rem; color:var(--ink-70); margin-top:.5rem; margin-bottom:.9rem; }
.cost-bar-legend span:last-child { color:var(--accent); }
.cost-export { width:100%; justify-content:center; margin-top:1.2rem; font-size:.9rem; }
.cost-export:disabled { opacity:.45; cursor:not-allowed; }
.cost-method { margin-top:1.25rem; color:var(--ink-70); }
.cost-method summary { font-size:.85rem; }
.cost-method p { font-size:.8rem; margin:.85rem 0 0; line-height:1.6; }
.cost-zero-warning { font-size:.8rem; line-height:1.5; color:var(--accent); margin-top:.8rem; }
.cost-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (min-width:901px) and (max-height:850px) { .cost-summary { position:static; } }
@media (max-width:1000px) { .cost-layout { gap:1.5rem; } .cost-summary { padding:1.4rem; } }
@media (max-width:900px) { .cost-layout { grid-template-columns:1fr; } .cost-summary { position:static; } .cost-notice { flex-direction:column; gap:.25rem; } .cost-price strong { font-size:3.2rem; } .cost-mobile-result { display:flex; justify-content:space-between; align-items:center; gap:1rem; position:sticky; top:4rem; z-index:6; padding:.8rem 1rem; margin-bottom:1.5rem; border:1px solid var(--line-2); background:var(--surface); box-shadow:0 5px 15px rgba(48,44,36,.05); } .cost-mobile-result small { display:block; font-size:.75rem; color:var(--ink-70); } .cost-mobile-result strong { display:block; color:var(--accent); font-size:1.2rem; font-weight:500; font-variant-numeric:tabular-nums; } .cost-mobile-result a { font-size:.8rem; text-decoration:underline; text-underline-offset:.2rem; } }
@media (max-width:420px) { .cost-fields { gap:1rem .75rem; } .cost-field label { font-size:.875rem; } .cost-input { flex-wrap:wrap; } .cost-input input { padding-bottom:.3rem; } .cost-input span { padding:0 .7rem .5rem; } .cost-settings > summary span { display:none; } .cost-summary { padding:1.2rem; } .cost-breakdown > div { gap:.5rem; } }
@media (prefers-reduced-motion:reduce) { .cost-section * { transition:none !important; } }

/* Service rates share the calculator assumptions. */
.price-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line, #dedbd5);border:1px solid var(--line, #dedbd5);border-radius:16px;overflow:hidden;margin:24px 0 14px}.price-grid article{padding:25px;background:var(--surface,#fffefa)}.price-grid h3{font-size:20px;margin:14px 0 10px}.price-grid p{font-size:14px;line-height:1.6;color:var(--ink70,#555650)}.price-grid .price-rate{font-size:21px;color:var(--accent);margin-bottom:10px}.price-grid .index{font-size:10px}.price-options{border:1px solid #dedbd5;padding:24px;border-radius:14px;margin:20px 0}.price-options h3{margin-bottom:10px}.price-options .cost-fields{margin-top:18px}.price-customer{margin:22px 0}.price-customer>div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #e6e1da;padding:12px 0;font-size:14px}.price-customer dd{text-align:right;font-weight:600}.price-sources{margin-top:24px}.price-sources a{text-decoration:underline}.cost-method>summary{cursor:pointer}.cost-method>p{margin-top:12px}.price-options select{max-width:100%}@media(max-width:600px){.price-grid{grid-template-columns:1fr}.price-grid article{padding:20px}.price-options{padding:18px}.price-customer>div{font-size:13px}}
