:root{font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;color:#1e293b;background:#f5f6f8;font-size:16px;line-height:1.65;--accent:#253e60;--line:#d7dde6;--muted:#58677a;--warning:#87520c}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{min-height:44px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--accent);padding:9px 15px;cursor:pointer;font-weight:600}button:hover{background:#eef2f7}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);color:white;border-color:var(--accent)}button.danger{color:#9b2b25;border-color:#d9b7b3}button.small{padding:5px 10px}a{color:var(--accent)}input:not([type=checkbox]):not([type=file]),select,textarea{width:100%;min-height:44px;border:1px solid #aab5c4;border-radius:8px;background:white;color:#1e293b;padding:9px 10px;font-size:16px}textarea{min-height:85px;resize:vertical}input[type=checkbox]{width:22px;height:22px;vertical-align:middle;accent-color:var(--accent)}label{display:block}label span.label{display:block;font-size:.88rem;color:var(--muted);margin-bottom:4px}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #3978bb;outline-offset:3px}
.app-header{max-width:960px;margin:auto;padding:24px 20px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px}h1{font-size:1.6rem;line-height:1.2;margin:3px 0 8px}h2{font-size:1.25rem;margin:0 0 14px}h3{font-size:1.08rem;margin:0}h4{font-size:1rem;margin:15px 0 6px}p{margin:8px 0 14px}.eyebrow{font-size:.8rem;letter-spacing:.1em;margin:0;color:var(--muted)}.badge{display:inline-block;border-radius:99px;padding:4px 10px;background:#e8edf3;font-size:.8rem;white-space:nowrap}.warning{background:#fff4dc;color:var(--warning)}.main-nav{max-width:920px;margin:0 auto 20px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:0 16px}.main-nav button{background:transparent;border-color:transparent}.main-nav button[aria-current=page]{background:var(--accent);color:white}
main{max-width:920px;margin:auto;padding:0 16px 40px}.panel,.product-card{background:white;border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:0 3px 14px #18263b06}.product-card.excluded{background:#f8f9fb}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.muted,small{color:var(--muted)}small{font-size:.82rem}.hint{font-size:.88rem;color:var(--muted)}.notice{padding:14px 18px;background:#edf3fa;border:1px solid #cbd9eb;border-radius:10px;margin:12px auto;max-width:888px}#message:not(:empty){margin:10px auto 16px;max-width:888px;background:#edf3fa;border-left:4px solid var(--accent);padding:12px 16px;white-space:pre-line}#message.error{background:#ffefeb;border-left-color:#a43229;color:#7a221b}.entry{display:grid;grid-template-columns:minmax(80px,1fr) minmax(100px,1fr) 46px;gap:7px;margin:7px 0}.entry button{padding:5px}.entry-group{margin-top:15px}.summary{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}.metric{background:#f1f4f8;border-radius:9px;padding:9px}.metric small{display:block}.metric strong{font-size:1.13rem}.order-result{font-size:1.1rem;font-weight:700;color:var(--accent)}details{border-top:1px solid var(--line);padding:11px 0 0;margin-top:12px}summary{cursor:pointer;min-height:36px;color:var(--accent)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.sticky-actions{position:sticky;bottom:0;background:#f5f6f8ed;padding:12px 0 calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);backdrop-filter:blur(8px);z-index:2}.check{display:flex;gap:10px;align-items:flex-start}.check input{flex-shrink:0;margin-top:3px}.unit-row{display:grid;grid-template-columns:1fr 1fr auto;gap:9px;padding:14px 0;border-bottom:1px solid var(--line)}.unit-row.base{grid-template-columns:1fr auto}.product-list{display:grid;gap:10px}.list-item{border:1px solid var(--line);border-radius:10px;padding:14px;display:flex;justify-content:space-between;gap:14px;align-items:center}.list-item p{margin:2px 0}.rule-row{display:grid;grid-template-columns:1fr 1fr auto;gap:9px;margin:10px 0}.restore-preview{border:1px solid #bc9a59;background:#fff9ec;padding:14px;border-radius:10px}pre{overflow:auto;white-space:pre-wrap;font-size:.88rem}.empty{padding:28px 12px;text-align:center;color:var(--muted)}footer{max-width:920px;margin:auto;padding:0 20px 30px;color:var(--muted);font-size:.8rem}footer p{margin-bottom:4px}ul{padding-left:22px}dl{display:grid;grid-template-columns:auto 1fr;gap:5px 16px}dt{color:var(--muted)}dd{margin:0}code{word-break:break-word}hr{border:0;border-top:1px solid var(--line);margin:20px 0}[hidden]{display:none!important}
@media(max-width:520px){.app-header{padding-top:18px}.panel,.product-card{padding:15px}main{padding-left:12px;padding-right:12px}.metrics{gap:5px}.metric{padding:7px}.metric strong{font-size:1rem}.unit-row{grid-template-columns:1fr 95px 44px}.rule-row{grid-template-columns:1fr 1fr 44px}.actions button{flex-grow:1}.sticky-actions button.primary{flex:2}.list-item{align-items:flex-start}.grid{grid-template-columns:1fr}.badge{white-space:normal}.main-nav{padding:0 12px}}
/* An update is an optional application action, visually separate from warnings. */
#update:not([hidden]){display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px auto 18px;color:#253e60}#update .update-copy{flex:1}#update .update-copy p{margin:3px 0 0;font-size:.86rem;color:var(--muted)}#update button{flex-shrink:0}button.primary:hover,.main-nav button[aria-current=page]:hover{background:#1b304c}input:not([type=checkbox]):not([type=file]):hover,select:hover,textarea:hover{border-color:#7f90a6}
@media(max-width:520px){#update:not([hidden]){margin:10px 12px 16px;align-items:stretch;flex-direction:column;gap:12px}#update button{width:100%}}
