*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;background:#f5f5f3;color:#1a1a1a;line-height:1.5;min-height:100vh}.page{padding:24px;max-width:820px;margin:0 auto}.page.active{display:block}.page-title{font-size:17px;font-weight:500;margin-bottom:16px;display:flex;align-items:center;gap:8px}.page-title i{font-size:18px;color:#1f3578}.section{margin-bottom:14px;border:1px solid #E0DDD8;border-radius:10px;overflow:hidden;background:#fff}.section-hdr{background:#f5f5f3;padding:8px 14px;font-size:11px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #E0DDD8;display:flex;justify-content:space-between;align-items:center}.section-hdr .sub{font-weight:400;text-transform:none;letter-spacing:0;font-size:10px;color:#aaa}.fields{padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}.fields.thirds{grid-template-columns:1fr 1fr 1fr}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:12px;color:#666;font-weight:500}.field select,.field input[type=number],.field input[type=text]{width:100%;font-size:13px;padding:7px 10px;border:1px solid #D5D2CC;border-radius:6px;background:#fff;color:#1a1a1a}.field select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;padding-right:28px}.field select:focus,.field input:focus{outline:none;border-color:#378add;box-shadow:0 0 0 3px #378add1f}.field .hint{font-size:11px;color:#999;margin-top:2px}.dimmed{opacity:.35;pointer-events:none}.warn-row{display:none;padding:8px 14px;background:#fef2f2;color:#b91c1c;font-size:12px;border-top:1px solid #FECACA;align-items:center;gap:6px}.warn-row.show{display:flex}.results{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.metric{border-radius:8px;padding:14px 16px}.metric .mlabel{font-size:11px;color:#666;margin-bottom:4px;font-weight:500}.metric .mval{font-size:22px;font-weight:500;color:#1a1a1a}.metric.bg-default{background:#f5f5f3}.metric.gold{background:#fff8e1}.metric.gold .mval{color:#92601a}.metric.cogs-card{background:#fff8dc}.metric.cogs-card .mval{color:#7f6000}.metric.green-card{background:#f0fbf4}.metric.green-card .mval{color:#166534}.save-bar{display:flex;align-items:center;gap:10px;padding:14px;border:1px solid #E0DDD8;border-radius:10px;background:#fff;margin-bottom:14px}.save-bar input{flex:1;font-size:13px;padding:7px 10px;border:1px solid #D5D2CC;border-radius:6px;background:#fff;color:#1a1a1a}.save-bar input:focus{outline:none;border-color:#378add;box-shadow:0 0 0 3px #378add1f}.btn{padding:7px 14px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;border:1px solid;transition:background .15s;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.btn-primary{background:#1f3578;color:#fff;border-color:#1f3578}.btn-primary:hover{background:#162a60}.btn-secondary{background:#fff;color:#1a1a1a;border-color:#d5d2cc}.btn-secondary:hover{background:#f5f5f3}.btn-danger{background:#fff;color:#b91c1c;border-color:#fecaca}.btn-danger:hover{background:#fef2f2}.btn-sm{padding:4px 10px;font-size:12px}.btn:disabled{opacity:.6;cursor:default}.breakdown{border:1px solid #E0DDD8;border-radius:10px;overflow:hidden;margin-bottom:14px;background:#fff}.bd-hdr{background:#f5f5f3;padding:8px 14px;font-size:12px;font-weight:500;color:#666;display:flex;justify-content:space-between;border-bottom:1px solid #E0DDD8}.bd-row{display:flex;justify-content:space-between;padding:7px 14px;font-size:13px;border-top:1px solid #F0EDE8;color:#1a1a1a}.bd-row:first-of-type{border-top:0}.bd-row.subtotal{background:#f5f5f3;font-weight:500}.bd-row.total-row{background:#eef5fb;font-weight:500;font-size:14px}.bd-row.cogs-item{background:#fefdf0}.bd-row.cogs-total{background:#fff8dc;font-weight:500}.bd-row.margin-row{background:#f0fbf4;font-weight:500;color:#166534}.bd-row .amt{font-variant-numeric:tabular-nums}.bd-row.adj .amt{color:#b91c1c}.bd-sep{padding:5px 14px;background:#f5f5f3;font-size:11px;color:#888;font-weight:600;letter-spacing:.05em;text-transform:uppercase;border-top:1px solid #E0DDD8}.note{font-size:11px;color:#999;padding:10px 14px;line-height:1.5;border-top:1px solid #F0EDE8}.qt{width:100%;border-collapse:collapse;font-size:13px}.qt th{background:#f5f5f3;padding:8px 12px;text-align:left;font-weight:600;font-size:11px;color:#666;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #E0DDD8}.qt td{padding:9px 12px;border-bottom:1px solid #F0EDE8;vertical-align:middle}.qt tr:last-child td{border-bottom:0}.qt tr:hover td{background:#fafaf8}.empty{text-align:center;padding:40px;color:#999;font-size:13px}.empty i{font-size:32px;display:block;margin-bottom:8px;color:#d5d2cc}.agrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.acard{border:1px solid #E0DDD8;border-radius:10px;overflow:hidden;background:#fff}.acard.full{grid-column:1/-1}.abody{padding:12px 14px}.rrow{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid #F5F5F3;font-size:13px}.rrow:last-child{border-bottom:0}.rrow .rl{color:#555}.rrow .ri{display:flex;align-items:center;gap:4px}.rrow input{width:90px;font-size:13px;padding:4px 8px;border:1px solid #E0DDD8;border-radius:5px;text-align:right;background:#fffef5}.rrow input:focus{outline:none;border-color:#378add}.save-rates-row{padding:10px 14px;border-top:1px solid #F0EDE8;display:flex;justify-content:flex-end}.cpi-wrap{overflow-x:auto;padding:0 14px 14px}.cpi-t{border-collapse:collapse;font-size:11px;min-width:500px}.cpi-t th,.cpi-t td{padding:4px 7px;border:1px solid #E0DDD8;text-align:right;white-space:nowrap}.cpi-t th{background:#f5f5f3;font-weight:600;color:#666}.cpi-t td.lbl{text-align:left;font-weight:500;color:#555;background:#fafaf8}@media(max-width:560px){.results{grid-template-columns:1fr 1fr}.fields,.fields.thirds,.agrid{grid-template-columns:1fr}.acard.full{grid-column:auto}.save-bar{flex-wrap:wrap}}
