:root{--navy: #1A3260;--navy-2: #24447a;--steel: #8A94A0;--bg: #f3f5f8;--card: #ffffff;--text: #16202e;--muted: #6b7686;--green: #2e7d4f;--amber: #b7791f;--red: #b23b3b}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:16px}.app{display:flex;flex-direction:column;min-height:100%}.top{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:10px;padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top));background:var(--navy);color:#fff}.toplogo{height:30px;background:#fff;border-radius:6px;padding:2px 4px}.brand{font-weight:700;flex:1;letter-spacing:.3px}.top .link{color:#cfd8e6}.main{flex:1;padding:14px 14px 90px;max-width:760px;width:100%;margin:0 auto}h1{color:var(--navy);margin:8px 0 18px}h2{margin:4px 0 12px;font-size:20px;color:var(--navy)}h3{margin:0 0 8px;font-size:16px;display:flex;align-items:center;gap:8px}h4{margin:12px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--steel)}.card{background:var(--card);border-radius:12px;padding:14px;margin-bottom:12px;box-shadow:0 1px 3px #14285014}.card.faded{opacity:.75}.card.warn{border-left:4px solid var(--red)}.count{background:var(--navy);color:#fff;border-radius:10px;font-size:12px;padding:1px 8px;font-weight:600}.muted{color:var(--muted)}.small{font-size:14px;margin:3px 0}.note{background:#f6f8fb;border-radius:8px;padding:8px 10px;font-size:14px}.error{color:var(--red)}.center{display:flex;align-items:center;justify-content:center;min-height:100%;padding:24px}.center.col{flex-direction:column}.splash{width:220px;max-width:70vw}button{font:inherit;cursor:pointer}.primary{background:var(--navy);color:#fff;border:0;border-radius:10px;padding:12px 16px;font-weight:600}.primary.big{padding:14px 24px;font-size:17px}.link{background:none;border:0;color:var(--navy-2);padding:6px 0;text-decoration:underline}input,select{font:inherit;padding:11px 12px;border:1px solid #cdd5df;border-radius:9px;width:100%;background:#fff}.addform{display:flex;flex-direction:column;gap:8px}.row{display:flex;gap:8px}.row .qty{width:30%}.rowspread{display:flex;justify-content:space-between;align-items:center}.check{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid #eef1f5}.check:first-of-type{border-top:0}.check input{width:22px;height:22px;margin-top:1px;flex:none}.check.done span{text-decoration:line-through;color:var(--muted)}.jobhead{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:0;text-align:left;padding:0;color:inherit}.part{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:1px solid #eef1f5}.partinfo{flex:1;min-width:0}.status{width:150px;flex:none;padding:8px;font-size:14px}.pill{font-size:12px;padding:1px 8px;border-radius:9px;background:#e8ecf2}.s-delivered,.s-installed{background:#e3f3e8;color:var(--green)}.s-shipped,.s-out-for-delivery{background:#e6eefb;color:var(--navy-2)}.s-delayed{background:#f9e6e6;color:var(--red)}.s-ordered{background:#fdf3e1;color:var(--amber)}.tabs{position:fixed;bottom:0;left:0;right:0;display:flex;background:#fff;border-top:1px solid #dde3ea;padding-bottom:env(safe-area-inset-bottom)}.tab{flex:1;padding:14px 0;background:none;border:0;color:var(--muted);font-weight:600}.tab.on{color:var(--navy);box-shadow:inset 0 3px 0 var(--navy)}.daynav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.daynav>button{font-size:28px;line-height:1;width:44px;height:44px;border-radius:10px;border:1px solid #d5dbe6;background:#fff;color:#1a3260;cursor:pointer}.daytitle{text-align:center;flex:1}.daytitle h2{margin:0}.linkbtn{background:none;border:none;color:#1a3260;text-decoration:underline;font-size:13px;cursor:pointer;padding:2px}.strip{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px}.stripday{display:flex;flex-direction:column;align-items:center;padding:6px 0;border-radius:10px;border:1px solid #d5dbe6;background:#fff;cursor:pointer;color:#1f2937}.stripday.today{border-color:#1a3260}.stripday.sel{background:#1a3260;color:#fff}.stripday .dow{font-size:11px}.stripday .dnum{font-size:16px;font-weight:700}.stripday .dcount{font-size:11px;min-height:14px;font-weight:700;color:#b45309}.stripday.sel .dcount{color:#fde68a}.datepick{width:100%;margin-bottom:10px;padding:8px;border-radius:10px;border:1px solid #d5dbe6;font-size:15px}.estrow{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;border:0;color:inherit}.st-draft{background:#eef1f5}.st-sent{background:#e6eefb;color:var(--navy-2)}.st-approved{background:#e3f3e8;color:var(--green)}.st-declined{background:#f9e6e6;color:var(--red)}.ghost{background:#fff;color:var(--navy);border:1px solid #cdd5df;border-radius:10px;padding:11px 14px;font-weight:600;flex:1}.toggle{display:flex;align-items:center;gap:10px;font-size:15px}.toggle input{width:22px;height:22px;flex:none}textarea{font:inherit;padding:11px 12px;border:1px solid #cdd5df;border-radius:9px;width:100%}.totalsbar{position:sticky;top:52px;z-index:1;display:flex;gap:8px;background:var(--navy);color:#fff;border-radius:12px;padding:10px 14px;margin-bottom:12px}.totalsbar>div{flex:1;display:flex;flex-direction:column}.totalsbar .muted{color:#cfd8e6}.totalsbar strong{font-size:18px}.good{color:#9be3b4}.low{color:#ffd38a}.addbtn{width:100%;background:#fff;border:1px dashed #b7c2d1;border-radius:10px;padding:11px;color:var(--navy);font-weight:600;margin-bottom:12px}.item.alt{margin-left:16px;background:#f7f8fa}.item.opt{border-left:4px solid var(--steel)}.itemhead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;cursor:pointer}.itemtitle{flex:1;min-width:0}.yn{display:flex;gap:8px;align-items:center;margin-top:8px}.yn button:not(.link){border:1px solid #cdd5df;background:#fff;border-radius:8px;padding:6px 16px;font-weight:600}.yn .on.yes{background:var(--green);color:#fff;border-color:var(--green)}.yn .on.no{background:var(--red);color:#fff;border-color:var(--red)}.yn .link{margin-left:auto}.mini{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted);flex:1}.partedit{border-top:1px solid #eef1f5;padding-top:8px;display:flex;flex-direction:column;gap:6px}.mathline{background:#f6f8fb;border-radius:8px;padding:8px 10px}.danger{color:var(--red)}.sheet{background:#fff;padding:18px;border-radius:12px;font-size:13px;color:#111}.sheethead{display:flex;align-items:center;gap:12px;border-bottom:3px solid var(--navy);padding-bottom:10px}.sheethead img{height:56px}.sheethead>div:nth-child(2){flex:1}.shopname{font-weight:800;color:var(--navy);font-size:16px}.estword{font-weight:800;color:var(--navy);font-size:20px;text-align:right}.sheetveh{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;padding:8px 0;border-bottom:1px solid #dde3ea}.esttable{width:100%;border-collapse:collapse;margin-top:8px}.esttable th{background:var(--navy);color:#fff;text-align:left;padding:6px;font-size:12px}.esttable td{padding:6px;border-bottom:1px solid #e6eaf0;vertical-align:top}.esttable .r{text-align:right;white-space:nowrap}.esttable .desc{color:#444;font-size:12px}.tierrow td{background:#e9eef6;font-weight:700;color:var(--navy)}.subrow td{color:#555}.altrow td{background:#f5f5f5}.discrow td{color:var(--green);font-weight:600}.totalrow td{font-weight:800;font-size:15px;border-top:2px solid var(--navy)}.boxes{white-space:nowrap;font-size:12px}.box{display:inline-block;width:12px;height:12px;border:1.5px solid #333;vertical-align:-2px;margin:0 2px 0 6px}.opthead{margin-top:14px;font-weight:700;color:var(--navy)}.foot{margin-top:12px;font-size:11px;color:#444}.sign{margin-top:18px;font-size:12px}@media print{.top,.tabs,.noprint{display:none!important}body,.main{background:#fff;padding:0;max-width:none}.sheet{padding:0;border-radius:0}.esttable tr{break-inside:avoid}}.mini.qtybox{flex:0 0 80px}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.reqbox{border-left:4px solid var(--navy)}.reqtext{white-space:pre-wrap;margin:0 0 8px}.claudenote{color:var(--navy-2);margin-top:3px}.st-requested,.st-building{background:#fdf3e1;color:var(--amber)}
