*{box-sizing:border-box;margin:0;padding:0}
html{height:100%}body{max-width:480px;margin:0 auto;font-family:Inter,"Segoe UI",Roboto,Arial,sans-serif;background:#f3f4f8;color:#1f2937;-webkit-font-smoothing:antialiased;min-height:100%;min-height:100dvh;position:relative;overflow-x:hidden}
a{color:inherit;text-decoration:none}
.hdr{background:linear-gradient(135deg,#1e1b4b,#4338ca);color:#fff;padding:calc(18px + env(safe-area-inset-top)) 20px 70px;border-radius:0 0 28px 28px}
.top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.sw{background:rgba(255,255,255,.15);padding:8px 14px;border-radius:999px;font-weight:600;font-size:14px;list-style:none;cursor:pointer;backdrop-filter:blur(8px);max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
summary::-webkit-details-marker{display:none}summary{list-style:none}
.swd{position:relative}.menu{position:absolute;top:44px;left:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-radius:16px;box-shadow:0 14px 30px rgba(30,27,75,.25);padding:6px;min-width:220px}
.menu.right{left:auto;right:0}.menu button{display:block;width:100%;text-align:left;border:0;background:none;padding:11px 12px;border-radius:10px;font-weight:600;font-size:14px;font-family:inherit;color:#1f2937;cursor:pointer}
.menu button.on{background:#eef2ff;color:#4338ca}.menu button.danger{color:#e11d48}.mh{font-size:12px;color:#6b7280;padding:8px 12px}
.avh{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#a5b4fc,#c4b5fd);color:#1e1b4b;cursor:pointer}
.av2{width:44px;height:44px;border-radius:14px;color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:15px;flex:none}
.hi{margin-top:22px;font-size:22px;font-weight:700}.sub{opacity:.75;font-size:13px;margin-top:4px}
.wrap{padding:0 16px;margin-top:-50px;padding-bottom:8px;transform:none;filter:none;perspective:none;will-change:auto}
.card{background:#fff;border-radius:20px;padding:18px;box-shadow:0 6px 20px rgba(30,27,75,.08);margin-bottom:14px}
.lbl{font-size:13px;color:#6b7280;font-weight:600}
.gs{border-radius:20px;padding:16px;color:#fff;box-shadow:0 10px 24px rgba(30,27,75,.15);margin-bottom:12px}
.gs .l{font-size:12px;opacity:.85;font-weight:600}.gs .v{font-size:28px;font-weight:800;margin:4px 0 10px}
.gp{display:flex;gap:8px}.gp div{flex:1;background:rgba(255,255,255,.18);border-radius:12px;padding:8px 10px;font-size:11px}.gp b{display:block;font-size:15px;margin-top:2px}
.g-sell{background:linear-gradient(135deg,#4f46e5,#7c3aed)}.g-cost{background:linear-gradient(135deg,#e11d48,#f97316)}
.rr{display:flex;align-items:center;gap:14px}
.chip{display:inline-block;font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px}
.pulse{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:8px;background:#10b981;box-shadow:0 0 0 4px rgba(16,185,129,.25),0 0 0 8px rgba(16,185,129,.1)}
.btn{display:block;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;text-align:center;padding:15px;border-radius:14px;font-weight:700;font-size:16px;margin-top:12px;border:0;width:100%;font-family:inherit}
.mp{display:flex;gap:8px;margin-top:16px}.mp select{flex:1;background:rgba(255,255,255,.15);color:#fff;border:0;border-radius:12px;padding:10px;font-weight:600;font-size:14px;font-family:inherit}
.mp select option{color:#1f2937}.mp button{background:#fff;color:#4338ca;border:0;border-radius:12px;padding:0 16px;font-weight:700;font-family:inherit}
.li{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid #f1f1f5;font-size:14px}.li:last-child{border:0}.li small{display:block;color:#9ca3af;font-size:11px}
.up{color:#059669;font-weight:700}.dn{color:#e11d48;font-weight:700}
table{width:100%;border-collapse:collapse;font-size:13px}th{color:#9ca3af;font-weight:600;text-align:left;padding:6px 0;font-size:11px}td{padding:10px 0;border-top:1px solid #f1f1f5}
th.r,td.r{text-align:right}
.foot{text-align:center;font-size:12px;color:#9ca3af;padding:10px 0 calc(120px + env(safe-area-inset-bottom,0px))}
.nav{position:fixed;z-index:100;bottom:0;left:0;right:0;width:100%;max-width:480px;margin:0 auto;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);display:flex;justify-content:space-around;padding:10px 0 calc(14px + env(safe-area-inset-bottom,0px));box-shadow:0 -4px 16px rgba(0,0,0,.06);border-radius:20px 20px 0 0;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.nav a{text-align:center;font-size:11px;color:#9ca3af;min-width:52px}.nav a.on{color:#4338ca;font-weight:700}.nav .ic{font-size:20px}
.nav .sc .ic{background:#4338ca;color:#fff;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:-26px auto 2px;box-shadow:0 6px 14px rgba(67,56,202,.4)}
.login{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:24px;background:linear-gradient(160deg,#1e1b4b,#4338ca 60%,#7c3aed)}
.login .card{background:rgba(255,255,255,.95)}.login input{width:100%;padding:14px;border:1px solid #e5e7eb;border-radius:12px;font-size:16px;margin-top:6px;margin-bottom:14px;font-family:inherit}
.err{background:#fff1f2;color:#be123c;border-radius:10px;padding:10px;font-size:13px;margin-bottom:12px}

/* entry forms */
.fm label{display:block;font-size:12px;font-weight:600;color:#6b7280;margin:10px 0 4px}
.fm input,.fm select,.fm textarea{width:100%;padding:12px;border:1px solid #e5e7eb;border-radius:12px;font-size:16px;font-family:inherit;background:#fff}
.fm .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fm button.go{margin-top:14px;width:100%;padding:14px;border:0;border-radius:14px;background:linear-gradient(135deg,#4338ca,#7c3aed);color:#fff;font-weight:700;font-size:16px;font-family:inherit;cursor:pointer}
.ok{background:#dcfce7;color:#166534;padding:10px 14px;border-radius:12px;margin-bottom:10px;font-weight:600}
.errs{background:#ffe4e6;color:#9f1239;padding:10px 14px;border-radius:12px;margin-bottom:10px}
.ent{display:flex;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid #f1f5f9;font-size:14px}.ent>div:last-child{white-space:nowrap;flex:none;text-align:right}
.ent small{display:block;color:#9ca3af;font-size:12px}.ent .act{display:flex;gap:6px;margin-top:4px}
.ent .act a,.ent .act button{font-size:12px;border:1px solid #e5e7eb;background:#fff;border-radius:8px;padding:3px 8px;cursor:pointer;font-family:inherit}
.ent .act button{color:#e11d48}

/* AI chat */
.chat{display:flex;flex-direction:column;gap:10px;padding-bottom:calc(160px + env(safe-area-inset-bottom,0px))}
.bub{max-width:88%;border-radius:18px;padding:10px 12px;font-size:14px;line-height:1.5;box-shadow:0 4px 14px rgba(30,27,75,.08)}
.bub.bot{background:#fff;align-self:flex-start;border-top-left-radius:6px}
.bub.me{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;align-self:flex-end;border-top-right-radius:6px}
.bub img{max-width:100%;max-height:260px;border-radius:12px;display:block;margin-bottom:6px}
.bub .tx{white-space:pre-wrap;word-wrap:break-word}.bub .tm{font-size:10px;opacity:.55;margin-top:4px;text-align:right}
.prop{background:#f8f9ff;border:1px solid #e0e7ff;border-radius:14px;padding:10px;margin-top:8px}
.prop .ph{font-weight:700;display:flex;justify-content:space-between;align-items:center}
.prop input,.prop select{width:100%;padding:9px;border:1px solid #e5e7eb;border-radius:10px;font-size:15px;font-family:inherit;background:#fff}
.prop .two{display:flex;gap:8px}.prop .two>div{flex:1}
.prop .tot{margin-top:8px;font-size:14px}.prop .tot small{color:#6b7280}
.warn{background:#fff7ed;color:#c2410c;border-radius:10px;padding:7px 9px;font-size:12.5px;margin-top:8px}
.yn{display:flex;gap:8px;margin-top:10px}.yn button{flex:1;border:0;border-radius:12px;padding:12px;font-weight:700;font-size:15px;font-family:inherit}
.yn .y{background:#059669;color:#fff}.yn .n{background:#f1f5f9;color:#475569}
.st-pending{background:#fef3c7;color:#92400e}.st-saved{background:#d1fae5;color:#065f46}.st-cancelled{background:#f1f5f9;color:#64748b}
.inv{display:flex;gap:10px;background:#f8f9ff;border-radius:14px;padding:8px;margin-top:8px}.inv img{width:84px;height:84px;object-fit:cover;margin:0}
.inv small{display:block;color:#6b7280;font-size:11.5px}.inv .amt{font-weight:800;margin-top:3px}
.chip.paid{background:#d1fae5;color:#065f46}.chip.unpaid{background:#fee2e2;color:#b91c1c}
.mini{border:0;background:#eef2ff;color:#4338ca;border-radius:8px;padding:4px 8px;font-weight:600;font-size:12px;font-family:inherit;margin-top:4px}
.pay2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}
.pay2 label{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:14px 6px;border:2px solid #e5e7eb;border-radius:14px;background:#fff;cursor:pointer;font-size:13px;font-weight:800;color:#475569;margin:0!important;min-height:72px;user-select:none}
.pay2 label .ic{font-size:26px;line-height:1}
.pay2 input{position:absolute;opacity:0;width:0;height:0}
.pay2 label.on,.pay2 label:has(input:checked){border-color:#4338ca;background:#eef2ff;color:#4338ca;box-shadow:0 0 0 1px #4338ca}
.pay2 label:has(input:disabled){opacity:.7;cursor:default}
.payhint{font-size:11px;color:#9ca3af;margin-top:6px;line-height:1.35}
.pthumb{display:block;margin-top:10px}.pthumb img{width:100%;max-height:96px;object-fit:cover;border-radius:12px;border:1px solid #e5e7eb}
.composer{position:fixed;z-index:99;left:0;right:0;bottom:calc(74px + env(safe-area-inset-bottom,0px));max-width:480px;margin:0 auto;display:flex;gap:8px;align-items:center;padding:8px 12px;background:rgba(243,244,248,.97);flex-wrap:wrap}
.composer .cam{font-size:22px;width:42px;height:42px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.08);cursor:pointer}
.composer #tx{flex:1;min-width:0;padding:11px 14px;border:1px solid #e5e7eb;border-radius:999px;font-size:16px;font-family:inherit}
.composer .snd{width:42px;height:42px;border-radius:50%;border:0;background:#4338ca;color:#fff;font-size:18px}
.composer .pv{width:100%;order:-1;font-size:12px;color:#4338ca;font-weight:600}
.busy{position:fixed;z-index:101;top:40%;left:50%;transform:translateX(-50%);background:#1e1b4b;color:#fff;padding:12px 18px;border-radius:14px;font-size:14px}
.gal{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-top:8px}.gal a{position:relative;display:block}
.gal img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;background:#eef}
.gal span{display:block;font-size:9.5px;color:#6b7280;line-height:1.25;margin-top:2px;overflow:hidden;max-height:24px}
.menu a{display:block;padding:11px 12px;border-radius:10px;font-weight:600;font-size:14px;color:#1f2937}.menu a:hover{background:#eef2ff}

/* ---- demo v2 components (Oct 2026) ---- */
.scan2{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#4f46e5,#7c3aed 55%,#db2777);color:#fff;padding:16px 18px;border-radius:22px;box-shadow:0 14px 30px rgba(124,58,237,.4);margin-bottom:12px;text-decoration:none}
.scan2 .ci{width:52px;height:52px;border-radius:16px;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:26px}
.ai{display:inline-block;background:#fff;color:#7c3aed;font-size:10px;font-weight:800;padding:2px 7px;border-radius:999px;margin-left:6px;vertical-align:middle}
.own{background:#fde68a;color:#78350f;font-size:10px;padding:2px 8px;border-radius:6px;margin-left:6px;vertical-align:middle;font-weight:700}
.wk{background:#fff;border-radius:18px;padding:14px;box-shadow:0 4px 14px rgba(30,27,75,.07);margin-bottom:10px}
.wk>summary{list-style:none;cursor:pointer}.wk>summary::-webkit-details-marker{display:none}.wk[open] .chev{transform:rotate(180deg)}.chev{color:#9ca3af;font-size:18px;transition:.2s}
.st{display:flex;gap:6px;margin-top:8px}.st div{flex:1;background:#f8f7ff;border-radius:10px;padding:6px 8px;font-size:10px;color:#6b7280}.st b{display:block;font-size:14px;color:#1f2937}
.bar{height:6px;background:#eef0f6;border-radius:9px;overflow:hidden;margin-top:8px}.bar i{display:block;height:100%;border-radius:9px}
.tl{position:relative;height:16px;background:#eef0f6;border-radius:8px;margin:4px 0 2px}.tl i{position:absolute;top:0;bottom:0;border-radius:8px}
.tlbox{background:#f8f7ff;border-radius:14px;padding:10px 12px;margin-top:12px}
.tlrow{display:flex;align-items:center;gap:8px;margin-top:8px}.tlrow .d{width:44px;font-size:11px;font-weight:700}
.tlrow .h{font-size:12px;width:52px;text-align:right}.tlrow .pen{color:#6366f1;font-size:13px;background:none;border:0;cursor:pointer;padding:0}
.tlfix{background:#fff;border-radius:10px;padding:8px;margin-top:6px}
.hm2{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.hm2 div{aspect-ratio:1;border-radius:8px;font-size:10px;display:flex;align-items:center;justify-content:center;font-weight:600}
.alert{background:#fff1f2!important;border:1px solid #fecdd3}
.fix{display:block;width:100%;border:0;background:#e11d48;color:#fff;border-radius:12px;padding:10px;text-align:center;font-weight:700;margin-top:10px;font-size:14px;cursor:pointer}
.xl{display:block;background:linear-gradient(135deg,#059669,#14b8a6);box-shadow:0 10px 22px rgba(5,150,105,.3);color:#fff;text-align:center;padding:16px;border-radius:16px;font-weight:700;margin-bottom:12px;text-decoration:none}
.pdfb{display:block;background:linear-gradient(135deg,#4f46e5,#7c3aed);box-shadow:0 10px 22px rgba(79,70,229,.3);color:#fff;text-align:center;padding:14px;border-radius:16px;font-weight:700;margin-bottom:12px;text-decoration:none}
.minipdf{display:inline-block;font-size:11px;font-weight:700;color:#4338ca;background:#eef2ff;border-radius:999px;padding:5px 10px;text-decoration:none;margin-top:10px}
.cp{color:#6366f1;margin-left:4px;cursor:pointer;background:none;border:0;font-size:12px;padding:0}
.leg{display:flex;flex-wrap:wrap;gap:6px;font-size:11px}.leg span{border-radius:999px;padding:3px 9px;font-weight:700}
.chips a.chip{text-decoration:none;padding:6px 11px;font-size:11px}
.ask{display:flex;gap:8px;margin-top:10px}.ask input{flex:1;background:#f3f4f6;border:0;border-radius:999px;padding:12px 16px;font-size:14px;outline:0}
.ask button{width:44px;height:44px;border-radius:50%;border:0;background:linear-gradient(135deg,#4f46e5,#db2777);color:#fff;font-size:16px;cursor:pointer}
.hdrbtn{background:rgba(255,255,255,.15);color:#fff;border-radius:12px;padding:8px 10px;font-size:13px;font-weight:700;text-decoration:none;margin-right:8px}
.mp a{color:#fff;text-decoration:none;font-size:20px;padding:0 6px}
.dn{color:#e11d48;font-weight:700}
.mnav{justify-content:space-between;align-items:center;background:rgba(255,255,255,.15);border-radius:14px;padding:6px 10px;font-weight:600}
.mnav select{flex:0 1 auto;background:transparent;text-align:center;font-weight:700}
.card .mp select{background:#f1f5f9;color:#1f2937;border:1px solid #e5e7eb}.card .mp button{background:#4338ca;color:#fff;padding:0 18px}
/* demo month picker: "‹  📅 October 2026 ▾  ›" */
.mnav{padding:8px 14px}
.mnav .mpick{display:flex;align-items:center;gap:2px;font-size:16px;font-weight:700}
.mnav select{-webkit-appearance:none;appearance:none;font-size:16px;font-weight:700;padding:2px 0;text-align-last:center}
.warn{border:1px solid #fcd34d}
.mnav select{field-sizing:content;max-width:70vw}
/* Safari: make select text always visible */
.card .mp select{-webkit-appearance:none;appearance:none;-webkit-text-fill-color:#1f2937;color:#1f2937;opacity:1;text-align:center}
.hdr .mnav select{color:#fff;-webkit-text-fill-color:#fff;opacity:1}

/* ---- update 4 (Oct 2026) ---- */
.nav .brand{display:none}
.cp{display:inline-flex;align-items:center;gap:3px;margin:6px 6px 0 0;cursor:pointer;background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe;border-radius:999px;font-size:12px;font-weight:700;padding:6px 11px;font-family:inherit;line-height:1;-webkit-tap-highlight-color:transparent}
.cp:active{transform:scale(.96)}.cp.ok{background:#d1fae5;border-color:#6ee7b7;color:#065f46}
.cprow{display:flex;flex-wrap:wrap}
.toast{position:fixed;z-index:300;left:50%;bottom:calc(96px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);background:#111827;color:#fff;padding:10px 16px;border-radius:999px;font-size:14px;font-weight:600;opacity:0;pointer-events:none;transition:.25s;max-width:92vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.toast.on{opacity:1;transform:translate(-50%,0)}
.srch{display:flex;gap:6px;align-items:center;margin-bottom:10px;position:relative}
.srch input{flex:1;min-width:0;padding:11px 14px;border:1px solid #e5e7eb;border-radius:12px;font-size:16px;font-family:inherit;background:#f8fafc}
.srch button{border:0;background:#4338ca;color:#fff;border-radius:12px;padding:0 14px;height:44px;font-weight:700;font-family:inherit}
.srch .srchx{color:#9ca3af;font-size:16px;padding:0 4px}
.ent .amt{text-align:right;white-space:nowrap;flex:none}.ent .amt b{font-variant-numeric:tabular-nums}
.dring .darc{transition:stroke-dasharray .8s ease}.dring .dglow{animation:dglow 2.4s ease-in-out infinite;transform-origin:50% 50%}
@keyframes dglow{0%,100%{stroke-opacity:.08}50%{stroke-opacity:.28}}
/* Grok-style chat */
body.chatp .hdr{padding-bottom:16px;border-radius:0 0 22px 22px}
body.chatp .wrap{margin-top:12px;padding-bottom:0}
body.chatp .foot{display:none}
.chathd{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px}
.chathd .ct{font-size:19px;font-weight:800}.chathd .cs{font-size:12px;opacity:.75;margin-top:2px}
.cpeople{display:flex;gap:6px;align-items:center}.cpeople select{background:rgba(255,255,255,.15);color:#fff;border:0;border-radius:10px;padding:8px;font-size:14px;max-width:150px;font-family:inherit}
.cpeople select option{color:#1f2937}.cpeople a{font-size:18px}
.gchat{display:flex;flex-direction:column;gap:14px;padding:4px 0 calc(190px + env(safe-area-inset-bottom,0px))}
.gm{display:flex;gap:9px;align-items:flex-start;max-width:100%}
.gm.me{justify-content:flex-end}
.gm .gbody{min-width:0;font-size:15px;line-height:1.55}
.gm.me .gbody{max-width:84%;background:#e8e9f3;color:#111827;border-radius:20px 20px 6px 20px;padding:10px 14px}
.gm.bot .gbody{flex:1;max-width:calc(100% - 38px);background:#fff;border-radius:6px 20px 20px 20px;padding:11px 14px;box-shadow:0 4px 14px rgba(30,27,75,.06)}
.gm.pending .gbody{opacity:.75}
.gav{flex:none;width:29px;height:29px;border-radius:50%;background:linear-gradient(135deg,#111827,#4338ca);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;margin-top:2px}
.gm .tx{white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere}
.gm .tm{font-size:10px;color:#9ca3af;margin-top:6px}
.gm.me .tm{text-align:right}
.gimg{display:block}.gimg img{max-width:100%;max-height:280px;border-radius:14px;display:block;margin-bottom:6px}
.gtyping{display:flex;align-items:center;gap:4px;min-height:22px}
.gtyping i{width:7px;height:7px;border-radius:50%;background:#6366f1;display:inline-block;animation:gdot 1.2s infinite ease-in-out}
.gtyping i:nth-child(2){animation-delay:.15s}.gtyping i:nth-child(3){animation-delay:.3s}
.gtyping span{font-size:12px;color:#6b7280;margin-left:6px}
@keyframes gdot{0%,80%,100%{transform:translateY(0);opacity:.35}40%{transform:translateY(-5px);opacity:1}}
.fadein{animation:fadein .25s ease-out}@keyframes fadein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.gempty{text-align:center;padding:40px 10px 10px;color:#4b5563}
.glogo{width:58px;height:58px;margin:0 auto 12px;border-radius:18px;background:linear-gradient(135deg,#111827,#4338ca 60%,#7c3aed);color:#fff;font-size:28px;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 26px rgba(67,56,202,.35)}
.gempty .gh{font-size:20px;font-weight:800;color:#111827}.gempty .gs2{font-size:14px;margin-top:6px;color:#6b7280}
.gdock{position:fixed;z-index:99;left:0;right:0;bottom:calc(70px + env(safe-area-inset-bottom,0px));max-width:480px;margin:0 auto;padding:6px 10px 8px;background:linear-gradient(180deg,rgba(243,244,248,0),#f3f4f8 22%)}
.gsugg{display:flex;gap:7px;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.gsugg::-webkit-scrollbar{display:none}
.gsugg button{flex:none;border:1px solid #e0e7ff;background:#fff;color:#3730a3;border-radius:999px;padding:8px 13px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap}
.gsugg.mini button{padding:6px 11px;font-size:12px}
.gcomp{background:#fff;border:1px solid #e5e7eb;border-radius:26px;box-shadow:0 8px 24px rgba(30,27,75,.12);padding:6px}
.gcomp .grow{display:flex;align-items:flex-end;gap:6px}
.gcomp textarea{flex:1;min-width:0;border:0;outline:0;resize:none;font-size:16px;line-height:1.4;font-family:inherit;padding:9px 4px;max-height:140px;background:transparent}
.gatt{flex:none;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:19px;cursor:pointer;background:#f3f4f6}
.gsend{flex:none;width:40px;height:40px;border-radius:50%;border:0;background:#111827;color:#fff;font-size:19px;font-weight:800;cursor:pointer}
.gsend:disabled{opacity:.4}
.gpv{position:relative;display:inline-block;margin:4px 4px 6px}.gpv[hidden]{display:none}.gpv img{height:64px;border-radius:12px;display:block}
.gpv button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;border:0;background:#111827;color:#fff;font-size:11px}
.slipgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.slipgrid label{margin-top:6px!important}
.sumchk{margin-top:8px;font-size:13px;padding:8px 10px;border-radius:10px;background:#f1f5f9;color:#334155}
.sumchk.good{background:#d1fae5;color:#065f46}.sumchk.bad{background:#fee2e2;color:#991b1b}
.gm .inv{background:#f8f9ff}
/* update 5: big glass duty ring (staff Home + Duty page) */
.bigring{position:relative;width:min(260px,72vw);aspect-ratio:1;margin:16px auto 6px}
.bigring .bgl{position:absolute;inset:6%;border-radius:50%;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.95),rgba(236,253,245,.55) 45%,rgba(224,231,255,.35) 75%);box-shadow:inset 0 2px 10px rgba(255,255,255,.9),inset 0 -8px 22px rgba(99,102,241,.12),0 14px 34px rgba(16,185,129,.18);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.bigring .bgl::after{content:"";position:absolute;inset:-4%;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 70%,rgba(255,255,255,.85) 80%,transparent 90%);animation:ringspin 4s linear infinite;mix-blend-mode:screen;opacity:.8}
@keyframes ringspin{to{transform:rotate(360deg)}}
.bigring svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.bigring .ddot{filter:drop-shadow(0 0 4px rgba(16,185,129,.8))}
.bigc{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.bigc .bl{font-size:12px;color:#047857;font-weight:700;letter-spacing:.02em}
.bigc .bt{font-size:clamp(44px,15vw,60px);font-weight:800;color:#064e3b;font-variant-numeric:tabular-nums;line-height:1.05;margin-top:2px}
.bigc .bs{font-size:13px;color:#6b7280;font-variant-numeric:tabular-nums;margin-top:2px}
.salchk{font-size:12.5px;margin-top:6px;padding:6px 9px;border-radius:9px}
.salchk.good{color:#047857;background:#ecfdf5}.salchk.bad{color:#b91c1c;background:#fee2e2}
.salsplit .sbank{background:#eef2ff;border-color:#c7d2fe}.salsplit .scash{background:#ecfdf5;border-color:#a7f3d0}
@media (prefers-reduced-motion:reduce){.bigring .bgl::after,.dring .dglow{animation:none}}
/* Laptop / desktop (≥900px). Mobile layout above is unchanged. */
@media (min-width:900px){
 body{max-width:none}
 .hdr{border-radius:0 0 32px 32px;padding-left:max(28px,calc((100vw - 1240px)/2));padding-right:max(28px,calc((100vw - 1240px)/2));padding-top:84px}
 .wrap{max-width:1240px;margin-left:auto;margin-right:auto;padding:0 28px 40px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;align-items:start}
 .wrap>*{grid-column:1/-1;min-width:0}
 .wrap>.card,.wrap>details,.wrap>a.card{grid-column:auto}
 .wrap>.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:14px}
 .wrap>.kpis>*{margin:0}
 .wrap>.scan2{grid-column:auto}
 .wrap>.split{display:grid;grid-template-columns:400px minmax(0,1fr);gap:20px;align-items:start}
 .split .splitform{position:sticky;top:76px}
 .nav{top:0;bottom:auto;max-width:none;border-radius:0;padding:8px max(28px,calc((100vw - 1240px)/2));justify-content:flex-start;gap:6px;box-shadow:0 2px 12px rgba(0,0,0,.08)}
 .nav .brand{display:block;font-weight:800;color:#1e1b4b;font-size:16px;margin-right:18px;white-space:nowrap}
 .nav a{display:flex;align-items:center;gap:6px;font-size:14px;padding:8px 14px;border-radius:12px;min-width:0}
 .nav a.on{background:#eef2ff}.nav .ic{font-size:18px}
 .nav .sc .ic{width:auto;height:auto;margin:0;background:none;box-shadow:none;color:inherit}
 .mnav select{max-width:none}
 .hm2{max-width:430px;gap:4px}.hm2 div{border-radius:7px;font-size:10px}
 .toast{bottom:32px}
 /* chat: one centred column like Grok */
 body.chatp .hdr{padding-top:76px}
 body.chatp .wrap{display:block;max-width:860px}
 .chathd{max-width:804px;margin-left:auto;margin-right:auto}
 .gchat{padding-bottom:200px}
 .gm.me .gbody{max-width:70%}
 .gdock{bottom:0;max-width:860px;padding:8px 28px 18px}
 .gempty{padding-top:70px}
}
