:root{font-family:Rubik,"Segoe UI",Arial,sans-serif;color:#15185c;background:#f5f6f8;font-size:14px}*{box-sizing:border-box}body{margin:0}header{height:86px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e2e7ec;background:white}.brand{display:flex;gap:12px;font-weight:700;font-size:18px;align-items:center}.brand small{display:block;font-size:9px;letter-spacing:1.8px;color:#626879;margin-top:6px}.logo{background:#15185c;color:white;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-size:24px}.private{color:#626879;font-size:12px}main{max-width:1530px;margin:auto;padding:44px 5% 24px}.intro{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:34px}.eyebrow{font-size:10px;letter-spacing:2px;color:#626879;font-weight:700;margin:0 0 12px}h1{font-size:clamp(26px,3vw,38px);letter-spacing:-1.3px;line-height:1.2;margin:0 0 12px;font-weight:650}.lead{color:#626879;font-size:15px;margin:0}.supported{text-align:right;font-size:9px;letter-spacing:1.3px;color:#626879}.supported strong,.supported span{display:block;letter-spacing:0;font-size:12px;margin-top:7px;color:#15185c}.upload{background:white;border:1px dashed #ded9ce;border-radius:14px;display:flex;gap:20px;align-items:center;padding:30px;margin-bottom:18px}.upload.over{background:#f5f2eb;border-color:#6e5d38}.uploadicon{width:52px;height:52px;background:#f5f2eb;border-radius:12px;display:grid;place-items:center;color:#6e5d38;font-size:30px}.upload h2{font-size:16px;margin:0 0 7px}.upload p{color:#626879;margin:0 0 8px;font-size:13px}.upload small{font-size:11px;color:#626879}.upload .button{margin-left:auto;white-space:nowrap}.button,.secondary{border:0;border-radius:7px;padding:12px 18px;font:inherit;font-weight:600;cursor:pointer;display:inline-block}.button{background:#15185c;color:white}.button:hover{background:#15185c}.button:disabled{opacity:.45;cursor:wait}.secondary{background:#edf1f3;color:#54646e;border:1px solid #dde4e9;font-size:12px}button:focus-visible,input:focus-visible,select:focus-visible,label.button:focus-visible{outline:3px solid #8d7c54;outline-offset:3px}#message:not(:empty){padding:14px 18px;background:#fff0e9;color:#903d24;border-radius:8px;margin-bottom:18px}.filebar{display:flex;justify-content:space-between;align-items:center;padding:13px 0 20px;gap:16px}.filebar>div{display:flex;align-items:center;gap:10px;min-width:0}.filebar strong{font-size:12px;overflow-wrap:anywhere}.fileicon{font-weight:bold;color:#6e5d38;font-size:13px;background:#f5f2eb;padding:5px 7px;border-radius:4px}.badge{font-size:10px;background:white;border:1px solid #dde4e8;padding:5px 8px;border-radius:20px;white-space:nowrap;color:#626879}.textbutton{background:none;border:0;color:#626879;font-size:12px;cursor:pointer;white-space:nowrap}.metrics{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:18px;margin-bottom:24px}.metrics article{background:white;border:1px solid #e4e9ed;padding:24px;border-radius:11px}.metrics article>span{font-size:12px;color:#626879;display:block}.metrics strong{display:block;font-size:clamp(20px,2.4vw,30px);margin:12px 0 10px;letter-spacing:-.8px;white-space:nowrap;font-variant-numeric:tabular-nums}.metrics small{font-size:10px;color:#626879}.metrics article.profit{background:#15185c;border-color:#15185c;color:white}.metrics .profit>span{color:#e1d9c7}.metrics .profit small{color:#e1d9c7}.controls{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid #e4e9ed;border-radius:11px;padding:20px 24px;gap:20px;margin-bottom:28px}.global{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.global>label{font-weight:600;font-size:12px}.percent{display:flex;background:#fff4cf;border:1px solid #efdfa4;border-radius:6px;align-items:center;padding:0 12px 0 0}.percent input{width:64px;background:transparent;border:0;text-align:right;padding:10px;font:inherit;font-weight:bold}.percent span{color:#887536}.global small{width:100%;font-size:10px;color:#626879}.actions{display:flex;gap:10px;white-space:nowrap}.tableheading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;gap:20px}.tableheading h2{font-size:17px;margin:0 0 7px}.tableheading h2 span{font-size:11px;background:#e3e9ed;color:#626879;padding:3px 7px;border-radius:12px;margin-left:5px}.tableheading p{font-size:11px;color:#626879;margin:0}.tableheading>label{font-size:10px;color:#626879;display:flex;align-items:center;gap:10px}select{border:1px solid #dce3e8;padding:9px 14px;background:white;border-radius:6px;max-width:210px;color:#15185c}.tablewrap{overflow:auto;border:1px solid #e1e6eb;border-radius:10px;background:white}table{border-collapse:collapse;width:100%;font-size:11px;white-space:nowrap}th{text-align:right;font-weight:600;font-size:10px;color:#626879;background:#f9fafb;padding:15px 12px;border-bottom:1px solid #e2e8ed}th:first-child{text-align:left}td{padding:15px 12px;text-align:right;border-bottom:1px solid #edf0f3;font-variant-numeric:tabular-nums}td:first-child{text-align:left;min-width:230px;white-space:normal;max-width:300px}td:first-child strong{font-size:11px;display:block;color:#15185c;margin-bottom:5px}td:first-child small{font-size:10px;color:#626879;line-height:1.45;display:block}td:nth-child(2){color:#626879;font-size:10px}tbody tr:hover{background:#faf9f6}td input{width:68px;padding:8px;border-radius:5px;background:#fff7dd;border:1px solid #eee0b1;text-align:right;font:inherit;color:#554819}td input::placeholder{color:#b3a77f}td input.invalid,.percent:has(input.invalid){border-color:#cc4a33;background:#fff0ed}td:last-child{font-weight:700;color:#6e5d38}tfoot td{background:#f5f2eb;border-bottom:0;font-weight:700;padding-top:18px;padding-bottom:18px}tfoot td:first-child{font-size:11px;color:#626879}.footnote{display:flex;justify-content:space-between;gap:20px;margin-top:13px;font-size:10px;color:#626879}.exnote{font-size:11px;color:#626879;background:#eef2f5;padding:12px;border-radius:6px}.empty{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;padding:32px 10px 50px}.empty span{font-size:10px;color:#626879;letter-spacing:1px}.empty h3{font-size:14px;margin:12px 0 8px}.empty p{color:#626879;font-size:12px;line-height:1.7;margin:0;max-width:270px}footer{margin-top:30px;border-top:1px solid #dfe6eb;padding-top:20px;font-size:9px;letter-spacing:1.3px;color:#626879;display:flex;justify-content:space-between}footer span{letter-spacing:0}[hidden]{display:none!important}@media(max-width:900px){.controls{align-items:flex-start;flex-direction:column}.metrics{gap:10px}.metrics article{padding:18px}.intro .supported{display:none}.upload{padding:20px;gap:14px}.upload small{display:none}.footnote{flex-direction:column;gap:7px}}@media(max-width:600px){header{height:72px}.private{display:none}main{padding-top:28px}.intro{margin-bottom:25px}.upload{flex-wrap:wrap}.upload .button{margin-left:72px}.metrics{grid-template-columns:1fr 1fr}.metrics .profit{grid-column:1/-1}.metrics strong{font-size:22px}.filebar>div{flex-wrap:wrap}.tableheading{align-items:flex-start;flex-direction:column}.empty{grid-template-columns:1fr;gap:22px}.empty p{max-width:none}.actions{flex-wrap:wrap}footer span{display:none}}

.sheet-subtotal td{background:#f5f2eb!important;font-weight:700;border-top:2px solid #b9a677;border-bottom:2px solid #b9a677;padding-top:14px;padding-bottom:14px}.sheet-subtotal td:first-child{text-align:left;color:#15185c}

.cost-with-copy{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.copy-cost{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:4px;border:1px solid #ded9ce;border-radius:5px;background:#f5f2eb;color:#6e5d38;cursor:pointer;vertical-align:middle;font:inherit;font-size:15px}.copy-cost:hover{background:#f5f2eb;color:#15185c}.copy-cost:focus-visible{outline:3px solid #8d7c54;outline-offset:2px}.copy-status{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

header{gap:20px}header .private{margin-left:auto}.file-info-button{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;padding:9px 13px;border:1px solid #ded9ce;border-radius:7px;background:#f5f2eb;color:#15185c;font:inherit;font-size:12px;font-weight:600;cursor:pointer}.file-info-button:hover{background:#f5f2eb}.file-info-icon{width:17px;height:17px;display:inline-grid;place-items:center;border:1.5px solid currentColor;border-radius:50%;font-size:12px;font-family:Georgia,serif;font-weight:bold}.file-info-dialog{width:min(700px,calc(100% - 28px));max-height:calc(100dvh - 40px);padding:0;border:1px solid #ded9ce;border-radius:16px;background:white;color:#15185c;box-shadow:0 24px 90px #142e3540;overflow:auto}.file-info-dialog::backdrop{background:#132d3b80;backdrop-filter:blur(3px)}.file-info-titlebar{display:flex;justify-content:space-between;gap:18px;align-items:start;padding:25px 28px 20px;border-bottom:1px solid #ded9ce;background:#f5f2eb}.file-info-eyebrow{font-size:9px;letter-spacing:1.6px;font-weight:700;color:#626879;margin:0 0 8px}.file-info-dialog h2{font-size:23px;line-height:1.3;letter-spacing:-.5px;margin:0;color:#15185c}.file-info-close{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;padding:0;line-height:1;appearance:none;background:white;border:1px solid #ded9ce;border-radius:7px;color:#15185c;font:inherit;cursor:pointer}.file-info-close svg{display:block;pointer-events:none}.file-info-close:hover{background:#f5f2eb}.file-info-content{padding:22px 28px 27px;font-size:13px;line-height:1.65}.file-info-content p{margin:7px 0 14px}.file-info-summary{background:#f5f2eb;border-left:3px solid #6e5d38;padding:13px 16px;color:#15185c;font-weight:600}.file-info-steps{padding-left:22px;margin:22px 0}.file-info-steps li{padding-left:5px;margin-bottom:17px}.file-info-steps li::marker{color:#6e5d38;font-weight:700}.file-info-steps p{margin:4px 0}.file-info-dialog h3{font-size:15px;margin:0 0 7px;color:#15185c}.file-info-csob{background:#eaf5ff;border:1px solid #d4e7f7;padding:16px 18px;border-radius:9px;margin:22px 0}.file-info-csob h3{color:#004b93}.file-info-csob p:last-child{margin-bottom:0}.file-info-note{border-top:1px solid #ded9ce;padding-top:14px;color:#626879;font-size:11px}@media(max-width:600px){.file-info-button{padding:8px 10px;font-size:11px;gap:6px}.file-info-titlebar{padding:20px}.file-info-content{padding:18px 20px}.file-info-dialog h2{font-size:20px}.brand{font-size:15px}.brand small{font-size:8px;letter-spacing:1px}}

@media(max-width:400px){.file-info-button>span:last-child{display:none}.file-info-button{padding:9px}.brand small{letter-spacing:.5px}}

.header-info-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.supported-offer-list{list-style:none;padding:0;margin:22px 0}.supported-offer-list li{padding:16px 18px;margin-bottom:12px;border:1px solid #ded9ce;border-radius:9px;background:#f5f2eb}.supported-offer-list p:last-child{margin-bottom:0}
@media(max-width:1050px){header .private{display:none}.header-info-actions{margin-left:auto}}
@media(max-width:700px){header{height:auto;min-height:86px;flex-wrap:wrap;padding-top:16px;padding-bottom:16px;gap:15px}.header-info-actions{width:100%;margin-left:0;flex-wrap:wrap}.header-info-actions .file-info-button>span:last-child{display:inline}.header-info-actions .file-info-button{padding:9px 10px}}

.rate-request{margin:16px 0 28px;padding:24px;border:1px solid #ded9ce;border-radius:12px;background:#fff}.rate-request h2{margin:0 0 12px;font-size:19px}.rate-request p{font-size:13px;line-height:1.6;color:#626879}

.mapping-panel{margin:20px 0 32px;padding:24px;background:white;border:1px solid #ded9ce;border-radius:14px}.mapping-panel h2{font-size:22px;margin:8px 0}.mapping-panel p{font-size:12px;line-height:1.65;color:#626879}.mapping-card{min-width:0;margin:20px 0;padding:20px;border:1px solid #ded9ce;border-radius:10px}.mapping-card legend{font-weight:700;padding:0 8px}.mapping-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0}.mapping-grid label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:600;color:#626879}.mapping-grid input,.mapping-grid select{width:100%;max-width:none;min-width:0;border:1px solid #ded9ce;border-radius:6px;padding:10px;background:#fff;font:inherit}.mapping-grid select[data-key=price]{background:#fff7d6;border-color:#dcc475}.mapping-check{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.6;margin:14px 0}.mapping-check input{margin-top:3px;flex-shrink:0}.mapping-preview{max-height:300px;overflow:auto;border:1px solid #ded9ce;border-radius:8px}.mapping-preview table{font-size:11px}.mapping-preview caption{padding:10px;text-align:left;background:#f5f2eb;font-size:11px}.mapping-preview td{white-space:normal;min-width:100px;max-width:260px;overflow-wrap:anywhere;text-align:left}.mapping-preview th{white-space:normal;min-width:100px;max-width:220px;text-align:left;position:sticky;top:0}.mapping-preview td:first-child{min-width:55px}.mapping-preview .mapped-price{background:#fff4c5;color:#15185c;font-weight:700}.mapping-rates{padding:12px;background:#f5f2eb;border-radius:8px}.mapping-rates summary{cursor:pointer;font-size:12px;font-weight:600}.mapping-error,.mapping-panel p.mapping-error{color:#a23d28!important}.mapping-validation{margin-bottom:0!important}@media(max-width:850px){.mapping-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.mapping-panel{padding:16px}.mapping-card{padding:12px}.mapping-grid{grid-template-columns:1fr}.filebar{flex-wrap:wrap}}

/* Palette inspired by aricoma.com: navy #15185c, gold #8d7c54, white. */
:root{--brand-navy:#15185c;--brand-gold:#8d7c54;--brand-cream:#f5f2eb;--brand-border:#ded9ce;accent-color:var(--brand-navy)}
header{border-top:4px solid var(--brand-gold);border-bottom-color:#e2e3ec}
.logo{border-radius:7px;box-shadow:inset 0 -3px 0 var(--brand-gold)}
.eyebrow,.file-info-eyebrow,.empty span{color:#75633c}
h1,h2,.brand{color:var(--brand-navy)}
.button:hover{background:#252977}.button:active{background:#0f1034}
.upload{border-color:#b7b7ce}.upload.over{border-color:var(--brand-gold)}
.metrics article.profit{border-top:4px solid var(--brand-gold);padding-top:21px}
.metrics .profit>span,.metrics .profit small{color:#e1d9c7}
th{background:var(--brand-navy);color:#fff;border-bottom:2px solid var(--brand-gold)}
td{border-right:1px solid #edf0f3}td:last-child{border-right:0;color:var(--brand-navy)}
tbody tr:nth-child(even){background:#f8f9fb}tbody tr:hover{background:#f5f2eb}
.sheet-subtotal td{background:#f1ede3!important;border-color:#b9a677;color:var(--brand-navy)}
tfoot td{background:var(--brand-navy);color:white!important;border-top:2px solid var(--brand-gold);border-right-color:#33366e}
.file-info-csob{background:#f4f4fa;border-color:#dedfeb}.file-info-csob h3{color:var(--brand-navy)}
a{color:var(--brand-navy)}

.calculation-file-tools{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:-3px 0 18px}.calculation-file-tools>span{color:#626879;font-size:11px;line-height:1.5}.controls .actions{flex-wrap:wrap;justify-content:flex-end}.controls .actions button{font-size:12px}.controls .actions .secondary{white-space:normal}.exnote[role=note]{border-left:3px solid #8d7c54;background:#f5f2eb;line-height:1.6}@media(max-width:600px){.controls .actions{justify-content:flex-start}.calculation-file-tools>span{flex-basis:100%}}

.offer-validity{display:flex;align-items:center;justify-content:space-between;gap:12px 22px;flex-wrap:wrap;padding:19px 22px;margin:0 0 20px;border:1px solid #ded9ce;border-left:4px solid #8d7c54;border-radius:10px;background:#fff;color:#15185c}.offer-validity>div>span{display:block;font-size:12px;font-weight:600;margin-bottom:7px}.offer-validity strong{color:#8d7c54;display:block;font-size:23px;line-height:1.3;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.validity-status{font-size:12px;font-weight:600;padding:8px 12px;background:#f1ede3;border-radius:6px}.offer-validity p{flex-basis:100%;margin:0;font-size:11px;line-height:1.6;color:#626879;overflow-wrap:anywhere;white-space:pre-line}.offer-validity.expired{border-left-color:#a33328;background:#fff8f6}.offer-validity.expired strong{color:#9e3328}.offer-validity.expired .validity-status{color:#9e3328;background:#ffede9}.offer-validity.today .validity-status{color:#6e531a;background:#fff2c6}.pending-validity{font-weight:700;color:#15185c!important}@media(max-width:600px){.offer-validity{padding:16px}.offer-validity strong{font-size:21px}.offer-validity .validity-status{font-size:11px}}

.search-bar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:0 0 8px}.search-bar>label{flex:1;max-width:460px;min-width:240px;font-size:11px;font-weight:600;color:#15185c}.search-bar>label>span{display:block;margin-bottom:7px}.search-bar input{width:100%;padding:11px 13px;border:1px solid #c6c7d9;border-radius:7px;background:#fff;color:#15185c;font:inherit;font-size:13px}.search-bar>span{align-self:center;margin-top:20px;font-size:11px;color:#626879}.search-bar button:disabled{opacity:.45;cursor:default}.search-help{margin:0 0 18px;font-size:10px;color:#626879;line-height:1.6}.search-validation{color:#9e3328;font-size:12px}.item-copy-line{display:flex;gap:8px;align-items:flex-start;text-align:left;min-width:0}.item-copy-line>strong,.item-copy-line>.pn-value{flex:1;min-width:0;margin:0;overflow-wrap:anywhere}.item-copy-line>.copy-item{flex-shrink:0}.copy-item:disabled{opacity:.3;cursor:default}.item-sheet{margin-top:6px}td.pn-cell{min-width:175px;max-width:240px;text-align:left;color:#15185c;font-size:11px;white-space:normal}.pn-value{font-family:Consolas,'Courier New',monospace;font-weight:600;line-height:1.6}.tablewrap th:nth-child(2){text-align:left}.no-search-results td{text-align:center;max-width:none;white-space:normal;padding:28px;color:#626879;font-weight:400}@media(max-width:600px){.search-bar>label{max-width:none;min-width:0;flex-basis:100%}.search-bar>span{margin-top:0}.search-bar{gap:10px}.search-help{font-size:11px}}

footer{gap:12px;flex-wrap:wrap;align-items:center}footer .app-version{display:inline-block;white-space:nowrap;font-size:11px;font-weight:600;color:#15185c;letter-spacing:0}

/* Home screen installation and device safe areas. */
.install-link{border:0;background:none;padding:6px 0;color:#15185c;font:inherit;font-size:11px;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer;letter-spacing:0}.install-preview{display:flex;gap:18px;align-items:center;padding:20px;background:#f5f2eb;border-radius:12px;margin-bottom:24px}.install-preview img{border-radius:18px;flex-shrink:0}.install-preview strong{font-size:20px}.install-preview p{margin:7px 0 0}.install-steps{padding-left:22px}.install-steps li{padding-left:6px;margin:12px 0;line-height:1.7}.install-dialog{max-width:590px}body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}main{padding-bottom:max(24px,env(safe-area-inset-bottom))}@media(display-mode:standalone){header{padding-top:env(safe-area-inset-top);height:auto;min-height:86px}footer .install-link{display:none}}@media(max-width:600px){input[type=text],input[type=search],select,.search-bar input,.percent input,td input{font-size:16px}.install-preview{padding:16px;gap:14px}.install-preview strong{font-size:18px}}

.calculation-meta{display:flex;align-items:center;justify-content:space-between;gap:14px 28px;background:#eef2f5;border-radius:6px;padding:12px;margin:11px 0;color:#626879;font-size:11px;line-height:1.6}.calculation-meta .exnote{flex:1;min-width:0;margin:0;padding:0;background:transparent;overflow-wrap:anywhere}.calculation-context{margin-left:auto;text-align:right;flex-shrink:0}@media(max-width:900px){.calculation-meta{flex-wrap:wrap}.calculation-context{flex-shrink:1;max-width:100%}}@media(max-width:600px){.calculation-meta{align-items:flex-start;flex-direction:column;gap:8px}.calculation-context{margin-left:0;text-align:left}}
@media(display-mode:standalone){header{padding-top:calc(env(safe-area-inset-top,0px) + 24px);padding-bottom:16px;min-height:calc(86px + env(safe-area-inset-top,0px) + 24px)}}

/* Quiet, locally served ARICOMA mark behind the calculator. */
body{isolation:isolate}
body::before{content:"";position:fixed;top:110px;right:-160px;width:clamp(600px,68vw,1000px);aspect-ratio:210/262;z-index:-1;pointer-events:none;background:url("/aricoma-a-gold.svg?v=2") no-repeat center/contain;opacity:.06}
/* Width-based geometry stays identical with browser chrome and in standalone mode. */
@media(max-width:600px){body::before{top:180px;right:-27vw;width:140vw;opacity:.07}}
@media print{body::before{display:none}}
