*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:#1e293b;-webkit-user-select:none;user-select:none}#app canvas{display:block}button{font-family:inherit}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#8ec9e8,#bfe4f5 55%,#d9efd4)}.overlay.modal{background:#0f172a73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.card{background:#fff;border-radius:18px;padding:32px 36px;box-shadow:0 24px 60px #0f172a40;width:min(440px,92vw)}.card h1{font-size:26px;letter-spacing:.5px;margin-bottom:4px;color:#0f172a}.card h1 .accent{color:#e4572e}.card .tagline{color:#64748b;font-size:13.5px;margin-bottom:20px}.tabs{display:flex;gap:6px;margin-bottom:16px}.tabs button{flex:1;padding:8px 0;border:none;border-radius:8px;cursor:pointer;background:#eef2f7;color:#475569;font-weight:600;font-size:14px}.tabs button.active{background:#1d4ed8;color:#fff}.field{margin-bottom:12px}.field label{display:block;font-size:12px;font-weight:600;color:#64748b;margin-bottom:4px}.field input{width:100%;padding:10px 12px;border:1.5px solid #dbe3ee;border-radius:8px;font-size:15px;outline:none}.field input:focus{border-color:#1d4ed8}.btn{display:inline-block;border:none;border-radius:10px;cursor:pointer;padding:11px 18px;font-size:15px;font-weight:700;transition:transform .06s,filter .15s}.btn:hover{filter:brightness(1.07)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default;filter:none}.btn.primary{background:#1d4ed8;color:#fff;width:100%}.btn.success{background:#16a34a;color:#fff}.btn.warn{background:#e4572e;color:#fff}.btn.ghost{background:#eef2f7;color:#334155}.btn.small{padding:6px 12px;font-size:13px;border-radius:8px}.auth-error{color:#dc2626;font-size:13px;min-height:18px;margin-bottom:8px}.choose-wrap{display:flex;gap:18px;margin-top:18px}.choice{flex:1;border:2px solid #dbe3ee;border-radius:14px;padding:18px 14px;cursor:pointer;text-align:center;transition:border .12s,transform .12s;background:#fff}.choice:hover{border-color:#1d4ed8;transform:translateY(-3px)}.choice .icon{font-size:44px}.choice h3{margin:8px 0 4px;font-size:17px}.choice p{font-size:12.5px;color:#64748b;line-height:1.45;margin-top:6px}.role-tag{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:3px 8px;border-radius:999px}.role-tag.producer{background:#dcfce7;color:#15803d}.role-tag.processor{background:#dbeafe;color:#1d4ed8}.role-tag.retailer{background:#fef3c7;color:#b45309}#hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10;display:none}#hud.visible{display:block}.topbar{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;gap:10px;align-items:center;pointer-events:auto;background:#ffffffeb;border-radius:14px;padding:8px 16px;box-shadow:0 8px 24px #0f172a2e}.stat{display:flex;flex-direction:column;align-items:center;min-width:76px;padding:0 6px}.stat .k{font-size:10px;font-weight:700;letter-spacing:.8px;color:#94a3b8;text-transform:uppercase}.stat .v{font-size:16px;font-weight:800;color:#0f172a}.stat .v.pos{color:#16a34a}.stat .v.neg{color:#dc2626}.sep{width:1px;height:30px;background:#e2e8f0}.account-btn{display:flex;align-items:center;gap:6px;border:none;background:transparent;cursor:pointer;padding:4px 6px;border-radius:9px;color:#475569;font-weight:700}.account-btn:hover{background:#f1f5f9;color:#dc2626}.account-btn .acc-name{font-size:13px;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-btn .acc-icon{font-size:16px}.xpbar{width:76px;height:5px;background:#e2e8f0;border-radius:3px;margin-top:3px;overflow:hidden}.xpbar>div{height:100%;background:#7c3aed;border-radius:3px}.company-bar{position:absolute;top:70px;left:50%;transform:translate(-50%);display:flex;gap:8px;align-items:center;pointer-events:auto;background:#ffffffeb;border-radius:12px;padding:6px 10px;box-shadow:0 6px 18px #0f172a26;max-width:94vw;flex-wrap:wrap}.company-bar:empty{display:none}.company-name{border:none;background:#f1f5f9;padding:5px 10px;border-radius:9px;font-size:13px;font-weight:800;color:#0f172a;cursor:pointer;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.company-name:hover{background:#e2e8f0}.company-meta{font-size:12px;font-weight:700;color:#64748b;white-space:nowrap}.biz-chips{display:flex;gap:4px}.biz-chip{border:1.5px solid #dbe3ee;background:#fff;width:34px;height:32px;border-radius:9px;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.biz-chip:hover{border-color:#1d4ed8}.biz-chip.active{background:#1d4ed8;border-color:#1d4ed8}.biz-chip.open{font-weight:800;color:#1d4ed8}.biz-chip.dim{opacity:.45}.open-list{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow-y:auto;margin:10px 0}.open-lot{display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer;border:1.5px solid #dbe3ee;background:#fff;border-radius:12px;padding:10px 14px}.open-lot:hover:not(.disabled){border-color:#1d4ed8;transform:translateY(-1px)}.open-lot.active{border-color:#1d4ed8;box-shadow:0 0 0 2px #1d4ed826}.open-lot.disabled{opacity:.5;cursor:not-allowed}.open-lot .icon{font-size:26px}.open-lot .ol-main{flex:1;font-size:14px}.open-lot .ol-main .cap{font-size:11px;color:#94a3b8}.open-lot .ol-meta{font-size:12px;color:#64748b}.open-lot .neg{color:#dc2626;font-weight:700}.rank-desc{font-size:12px;color:#64748b;margin-bottom:10px}.rank-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;cursor:pointer;border:1px solid transparent}.rank-row:hover{background:#f1f5f9}.rank-row.mine{background:#eef4ff;border-color:#c7dbff}.rank-pos{min-width:26px;font-weight:800;color:#94a3b8;text-align:center}.rank-row.mine .rank-pos{color:#1d4ed8}.rank-name{flex:1;font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-val{font-weight:800;font-size:14px;color:#0f172a}.rank-sep{text-align:center;color:#cbd5e1;letter-spacing:3px;padding:2px 0}.rank-selfnote{margin-top:8px;text-align:center;font-size:13px;font-weight:700;color:#1d4ed8}.profile-top .kv,.profile-window .kv{padding:3px 0}.profile-badge{display:inline-block;background:linear-gradient(135deg,#fde68a,#fbbf24);color:#7c2d12;font-size:12px;font-weight:800;padding:4px 10px;border-radius:999px;margin:0 6px 6px 0}.profile-window{background:#f8fafc;border-radius:12px;padding:10px 12px;margin:12px 0}.profile-window h4,.profile-h{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:#64748b;margin:0 0 6px}.profile-h{margin-top:16px}.share-card{border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px;margin-bottom:8px}.share-head{display:flex;justify-content:space-between;font-weight:700;font-size:13px;margin-bottom:6px}.share-rank{color:#1d4ed8}.share-bar{position:relative;background:#e2e8f0;border-radius:6px;height:18px;overflow:hidden}.share-bar>div{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#3b82f6,#1d4ed8);border-radius:6px}.share-pct{position:absolute;right:8px;top:0;line-height:18px;font-size:11px;font-weight:800;color:#0f172a}.share-sub{font-size:12px;color:#64748b;margin-top:5px}.share-trend{font-size:12px;font-weight:700;margin-top:3px}.share-trend.pos{color:#16a34a}.share-trend.neg{color:#dc2626}.profile-biz{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;cursor:pointer;border:1px solid #eef2f7;margin-bottom:6px}.profile-biz:hover{border-color:#1d4ed8;background:#f8fbff}.profile-biz .pb-icon{font-size:22px}.profile-biz .pb-main{font-size:13px}.profile-biz .cap{font-size:11px;color:#94a3b8}.event-card{border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px;margin-bottom:8px;border-left-width:4px}.event-card.active{border-left-color:#16a34a;background:#f0fdf4}.event-card.upcoming{border-left-color:#f59e0b;background:#fffbeb}.ev-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.ev-name{font-weight:800;font-size:14px}.ev-time{font-size:12px;font-weight:700}.ev-time.active{color:#16a34a}.ev-time.upcoming{color:#b45309}.eff-row{display:flex;flex-wrap:wrap;gap:6px}.eff{font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;background:#f1f5f9}.eff.pos{color:#15803d;background:#dcfce7}.eff.neg{color:#b91c1c;background:#fee2e2}.demand-row{margin-bottom:10px}.dm-head{display:flex;justify-content:space-between;font-size:13px;font-weight:700;margin-bottom:4px}.dm-cat.high{color:#15803d}.dm-cat.low{color:#b91c1c}.dm-cat.normal{color:#64748b}.dm-bar{position:relative;background:#e2e8f0;border-radius:6px;height:12px;overflow:hidden}.dm-bar>div{position:absolute;inset:0 auto 0 0;border-radius:6px}.dm-bar>div.high{background:linear-gradient(90deg,#4ade80,#16a34a)}.dm-bar>div.normal{background:linear-gradient(90deg,#93c5fd,#3b82f6)}.dm-bar>div.low{background:linear-gradient(90deg,#fca5a5,#dc2626)}.dm-mid{position:absolute;left:33.3%;top:0;bottom:0;width:1px;background:#0f172a40}.opportunities{background:#fefce8;border:1px solid #fde68a;border-radius:12px;padding:10px 12px;margin:12px 0}.opp-row{font-size:13px;font-weight:600;padding:2px 0}.event-banner{position:absolute;top:112px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;pointer-events:auto;cursor:pointer;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#422006;border-radius:999px;padding:6px 14px;box-shadow:0 6px 18px #f59e0b66;font-weight:800;font-size:13px;z-index:11}.event-banner .eb-icon{font-size:16px}.event-banner .eb-time{font-weight:700;opacity:.85}.badge.live{background:#16a34a}.urgent-banner{position:absolute;top:156px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;pointer-events:auto;background:linear-gradient(135deg,#ef4444,#b91c1c);color:#fff;border-radius:999px;padding:6px 8px 6px 14px;box-shadow:0 6px 20px #dc262673;font-size:13px;z-index:12;max-width:92vw;animation:urgentPulse 2s ease-in-out infinite}@keyframes urgentPulse{0%,to{box-shadow:0 6px 20px #dc262666}50%{box-shadow:0 6px 26px #dc2626bf}}.urgent-banner .ub-badge{background:#fff;color:#b91c1c;font-weight:900;font-size:11px;padding:2px 8px;border-radius:999px;letter-spacing:.5px}.urgent-banner .ub-title,.urgent-banner .ub-reward{font-weight:800}.urgent-banner .ub-time{font-weight:700;opacity:.9;font-variant-numeric:tabular-nums}.urgent-banner .ub-hint{opacity:.85;font-size:12px}.urgent-banner .btn.small{padding:4px 12px;min-height:0;font-size:12px;border-radius:8px}.citynews-row{padding:8px 10px;border-left:3px solid #64748b;background:#94a3b814;border-radius:6px;margin-bottom:8px}.citynews-row .cn-text{font-size:13px}.citynews-row .cn-when{font-size:11px;opacity:.6;margin-top:3px}.citynews-row.cn-city_order_win{border-left-color:#f59e0b}.citynews-row.cn-major_deal{border-left-color:#16a34a}.citynews-row.cn-market_leader_change{border-left-color:#a855f7}.citynews-row.cn-business_opened{border-left-color:#3b82f6}.citynews-row.cn-wholesale_low{border-left-color:#ef4444}.alert-row.warn{color:#f59e0b}.alert-row.info{color:#60a5fa}.brief-card{width:min(460px,94vw)}.brief-hi{font-size:12px;font-weight:800;letter-spacing:1px;color:#94a3b8}.brief-scroll{max-height:52vh;overflow-y:auto;text-align:left;margin:8px 0 12px}.brief-h{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:#64748b;margin:14px 0 6px}.alert-row{font-size:13px;padding:6px 10px;border-radius:8px;margin-bottom:5px;background:#fff7ed;border-left:3px solid #f59e0b}.alert-row.critical{background:#fef2f2;border-left-color:#dc2626}.alert-row.info{background:#eff6ff;border-left-color:#3b82f6}.opp-box{background:#fefce8;border:1px solid #fde68a;border-radius:12px;padding:10px 12px;margin-top:12px;text-align:left}.opp-head{font-weight:800;margin-bottom:4px}.update-badge{display:inline-block;background:#1d4ed8;color:#fff;font-weight:800;padding:3px 12px;border-radius:999px;font-size:13px;margin-bottom:8px}.update-badge.sm{font-size:11px;padding:2px 8px}.update-features{text-align:left;margin:14px 0}.feat{font-size:14px;font-weight:600;padding:4px 0;color:#15803d}.feat.sm{font-size:12.5px;padding:2px 0}.news-update{border:1px solid #eef2f7;border-radius:12px;padding:10px 12px;margin-bottom:8px}.nu-head{font-size:14px;margin-bottom:3px}.nu-tag{font-size:12px;color:#64748b;margin-bottom:6px}.ann-card{border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px;margin-bottom:8px;border-left-width:4px;border-left-color:#94a3b8}.ann-card.important{border-left-color:#f59e0b}.ann-card.critical{border-left-color:#dc2626;background:#fef2f2}.ann-card.expired{opacity:.55}.ann-head{display:flex;justify-content:space-between;align-items:center}.ann-title{font-weight:800;font-size:14px}.ann-kind{font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.ann-msg{font-size:13px;margin:4px 0;color:#334155}.ann-when{font-size:11px;color:#94a3b8}.announce-banner{position:absolute;top:112px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;pointer-events:auto;max-width:92vw;background:#1e293b;color:#fff;border-radius:12px;padding:8px 14px;box-shadow:0 8px 24px #0f172a4d;z-index:12;font-size:13px}.announce-banner.important{background:linear-gradient(135deg,#f59e0b,#d97706);color:#422006}.announce-banner.critical{background:linear-gradient(135deg,#ef4444,#b91c1c)}.announce-banner .ab-title{font-weight:800}.announce-banner .ab-msg{opacity:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40vw}.announce-banner .ab-x{background:#fff3;border:none;color:inherit;border-radius:6px;width:22px;height:22px;cursor:pointer;font-weight:800}.mira{position:absolute;right:16px;bottom:84px;width:min(340px,88vw);display:flex;gap:10px;pointer-events:auto;z-index:13;background:#fffffffa;border-radius:16px;padding:12px 14px;box-shadow:0 16px 40px #0f172a47;border:1px solid #e2e8f0}.panel.visible~.mira,.panel.visible~.mira-note{right:430px}@media (max-width: 900px){.panel.visible~.mira,.panel.visible~.mira-note{right:16px;bottom:8px}}.mira-av{font-size:40px;line-height:1;align-self:flex-end}.mira-body{flex:1}.mira-name{font-weight:800;font-size:14px}.mira-role{font-weight:600;font-size:11px;color:#94a3b8}.mira-title{font-weight:700;font-size:13px;margin:4px 0 2px}.mira-step{color:#94a3b8;font-weight:600;font-size:11px}.mira-msg{font-size:13px;color:#475569;line-height:1.4;margin-bottom:8px}.mira-actions{display:flex;gap:6px}.tut-highlight{animation:tutpulse 1.2s ease-in-out infinite;box-shadow:0 0 0 3px #1d4ed880!important;border-radius:10px}@keyframes tutpulse{0%,to{box-shadow:0 0 0 2px #1d4ed866}50%{box-shadow:0 0 0 5px #1d4ed826}}.wsrow{border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px;margin-bottom:8px}.ws-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}.ws-top .emoji{font-size:20px}.ws-name{font-weight:700;flex:1}.ws-tag{font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;letter-spacing:.4px}.ws-tag.ok{background:#dcfce7;color:#15803d}.ws-tag.limited{background:#fef9c3;color:#a16207}.ws-tag.low{background:#ffedd5;color:#c2410c}.ws-tag.oos{background:#fee2e2;color:#b91c1c}.ws-bar{background:#e2e8f0;border-radius:6px;height:8px;overflow:hidden;margin-bottom:6px}.ws-bar>div{height:100%;border-radius:6px}.ws-bar>div.ok{background:linear-gradient(90deg,#4ade80,#16a34a)}.ws-bar>div.limited{background:linear-gradient(90deg,#fde047,#ca8a04)}.ws-bar>div.low{background:linear-gradient(90deg,#fb923c,#ea580c)}.ws-bar>div.oos{background:#dc2626}.ws-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 10px;font-size:11.5px;color:#64748b;margin-bottom:8px}.ws-reset{white-space:nowrap}.profile-warning{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-weight:700;font-size:13px;padding:8px 10px;border-radius:10px;margin-bottom:8px}.nav{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;gap:8px;pointer-events:auto;background:#ffffffeb;border-radius:14px;padding:8px;box-shadow:0 8px 24px #0f172a2e}.nav button{border:none;background:transparent;padding:9px 18px;border-radius:10px;font-size:14px;font-weight:700;color:#475569;cursor:pointer}.nav button:hover{background:#eef2f7}.nav button.active{background:#1d4ed8;color:#fff}.badge{display:inline-block;min-width:16px;padding:0 4px;margin-left:2px;border-radius:8px;background:#e4572e;color:#fff;font-size:11px;font-weight:800;text-align:center}.panel{position:absolute;top:70px;right:14px;bottom:76px;width:400px;max-width:94vw;background:#fffffff5;border-radius:16px;pointer-events:auto;box-shadow:0 16px 40px #0f172a38;display:none;flex-direction:column;overflow:hidden}.panel.visible{display:flex}.panel-head{padding:14px 18px 10px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eef2f7}.panel-head h2{font-size:17px;color:#0f172a}.panel-head .close{border:none;background:#eef2f7;border-radius:8px;width:28px;height:28px;cursor:pointer;font-size:14px;color:#475569}.panel-tabs{display:flex;gap:4px;padding:8px 12px 0}.panel-tabs button{border:none;background:transparent;padding:7px 12px;font-size:13px;font-weight:700;color:#64748b;cursor:pointer;border-radius:8px 8px 0 0;border-bottom:2.5px solid transparent}.panel-tabs button.active{color:#1d4ed8;border-bottom-color:#1d4ed8}.panel-body{padding:14px 18px;overflow-y:auto;flex:1;font-size:14px}.kv{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px dashed #eef2f7;font-size:13.5px}.kv .k{color:#64748b}.kv .v{font-weight:700}.kv .v.pos{color:#16a34a}.kv .v.neg{color:#dc2626}.invrow{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;background:#f8fafc;margin-bottom:8px}.invrow .emoji{font-size:22px}.invrow .name{font-weight:700;font-size:13.5px;flex:1}.invrow .qty{font-weight:800;font-size:15px}.invrow .cap{color:#94a3b8;font-size:12px}.capbar{height:4px;border-radius:2px;background:#e2e8f0;margin-top:4px;overflow:hidden}.capbar>div{height:100%;background:#0ea5e9}.bigstatus{text-align:center;padding:10px;border-radius:10px;font-weight:800;font-size:14px;margin-bottom:12px}.bigstatus.ok{background:#dcfce7;color:#15803d}.bigstatus.bad{background:#fee2e2;color:#b91c1c}.bigstatus.mid{background:#fef9c3;color:#a16207}.qtyrow{display:flex;gap:6px;align-items:center;margin:8px 0}.qtyrow input{width:80px;padding:8px;border:1.5px solid #dbe3ee;border-radius:8px;font-size:14px}.qtyrow .spacer{flex:1}.order{display:flex;align-items:center;gap:8px;background:#f8fafc;border-radius:10px;padding:9px 10px;margin-bottom:7px;font-size:13px}.order .side{font-weight:800;font-size:11px;padding:3px 7px;border-radius:6px}.order .side.buy{background:#dbeafe;color:#1d4ed8}.order .side.sell{background:#dcfce7;color:#15803d}.order .who{color:#64748b;font-size:12px}.order .grow{flex:1}.order input{width:58px;padding:5px;border:1.5px solid #dbe3ee;border-radius:6px;font-size:13px}.trade-row{font-size:12.5px;color:#475569;padding:5px 0;border-bottom:1px dashed #eef2f7}.mkt-form{background:#f1f5f9;border-radius:12px;padding:12px;margin-bottom:12px}.mkt-form h4{font-size:13px;margin-bottom:8px;color:#334155}.mkt-form select,.mkt-form input{padding:7px 9px;border:1.5px solid #dbe3ee;border-radius:8px;font-size:13.5px;background:#fff}.mkt-row{display:flex;gap:6px;margin-bottom:8px;align-items:center;flex-wrap:wrap}.objectives{position:absolute;left:14px;top:70px;width:250px;pointer-events:auto;background:#fffffff0;border-radius:14px;padding:12px 14px;box-shadow:0 8px 24px #0f172a29;font-size:13px}.objectives h3{font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:#94a3b8;margin-bottom:8px;display:flex;justify-content:space-between}.objectives h3 button{border:none;background:none;cursor:pointer;color:#94a3b8;font-size:12px}.obj{display:flex;gap:8px;padding:4px 0;color:#334155;align-items:baseline}.obj.done{color:#94a3b8;text-decoration:line-through}.obj .tick{font-weight:900;color:#16a34a;width:14px}#toasts{position:fixed;top:70px;left:50%;transform:translate(-50%);z-index:80;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{background:#0f172aeb;color:#f1f5f9;padding:10px 18px;border-radius:12px;font-size:13.5px;font-weight:600;box-shadow:0 10px 30px #00000040;animation:toast-in .25s ease-out}.toast.success{background:#14532df2}.toast.error{background:#7f1d1df2}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1}}#reconnect{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:none;align-items:center;justify-content:center;background:#0f172a99;color:#fff;font-size:17px;font-weight:700;flex-direction:column;gap:12px}#reconnect.visible{display:flex}.spinner{width:34px;height:34px;border:4px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hint{color:#94a3b8;font-size:12px;margin-top:6px;line-height:1.5}.controls-hint{position:absolute;bottom:16px;left:14px;pointer-events:none;background:#ffffffb3;border-radius:10px;padding:8px 12px;font-size:11.5px;color:#475569}.away-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.away-cell{background:#f8fafc;border-radius:10px;padding:12px;text-align:center}.away-cell .k{font-size:11px;color:#94a3b8;font-weight:700;text-transform:uppercase}.away-cell .v{font-size:20px;font-weight:800;margin-top:2px}#langbar{position:fixed;top:10px;right:12px;z-index:200;display:flex;gap:4px;padding:4px;background:#ffffffe6;border:1px solid #dbe3ee;border-radius:10px;box-shadow:0 2px 10px #0f172a1f}#langbar button{border:0;background:transparent;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;color:#64748b;padding:5px 9px;border-radius:7px;line-height:1}#langbar button:hover{background:#eef2f7;color:#334155}#langbar button.active{background:#2563eb;color:#fff}#langbar .lflag{margin-right:5px}.district-bar{position:absolute;left:50%;transform:translate(-50%);bottom:80px;z-index:60;display:flex;align-items:stretch;gap:6px;padding:5px;pointer-events:auto;background:#ffffffed;border:1px solid #dbe3ee;border-radius:12px;box-shadow:0 3px 14px #0f172a29}.district-title{display:flex;align-items:center;padding:0 8px;border:0;background:transparent;cursor:pointer;font-family:inherit;font-size:10.5px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:#94a3b8}.district-cell{display:flex;flex-direction:column;gap:1px;align-items:flex-start;border:1px solid transparent;background:#f1f5f9;cursor:pointer;padding:6px 12px;border-radius:9px;font:inherit;text-align:left}.district-cell:hover{background:#e2e8f0;border-color:#cbd5e1}.district-cell.full{opacity:.72}.dc-name{font-size:12.5px;font-weight:700;color:#1e293b;line-height:1.1}.dc-meta{font-size:10.5px;font-weight:600;color:#64748b;line-height:1.1}.district-cell.full .dc-meta{color:#b45309}.biz-group{display:inline-flex;align-items:center;gap:3px}.biz-group+.biz-group{margin-left:8px;padding-left:8px;border-left:1px solid #dbe3ee}.biz-group-label{font-size:9.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:#94a3b8;cursor:pointer;padding:2px 3px;border-radius:5px}.biz-group-label:hover{color:#2563eb;background:#eff6ff}.mira-note{position:fixed;right:16px;bottom:92px;z-index:120;max-width:340px;pointer-events:auto}.open-group+.open-group{margin-top:10px}.open-group-head{display:flex;align-items:center;justify-content:space-between;font-size:10.5px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:#94a3b8;padding:4px 2px 6px;border-bottom:1px dashed #e2e8f0;margin-bottom:6px}.open-group-head span{color:#64748b;font-weight:700;letter-spacing:0}.district-bar:empty{display:none}.district-title:hover{color:#2563eb}.title-rename{border:0;background:transparent;cursor:pointer;font:inherit;color:inherit;padding:0;display:inline-flex;align-items:center;gap:6px}.title-rename:hover{color:#2563eb}.title-rename .pencil{font-size:.72em;opacity:0;transition:opacity .15s}.title-rename:hover .pencil{opacity:.7}.ws-emergency{margin:2px 0 4px;padding:4px 8px;border-radius:7px;background:#fff4e5;color:#b45309;font-size:11.5px;font-weight:700;border:1px solid #fed7aa}.invrow.over{background:#fef2f2;border-radius:8px}.capbar>div.over{background:#dc2626}.cap.wait{color:#b45309;font-weight:700}.hint.neg{color:#b91c1c}.chat-log{display:flex;flex-direction:column;gap:8px;max-height:calc(100% - 56px);overflow-y:auto;padding:4px 2px}.chat-row{font-size:13px}.chat-row.self .chat-body{background:#eff6ff}.chat-row.system{color:#7c3aed;font-style:italic}.chat-sys{font-weight:800;letter-spacing:.5px;font-size:10.5px;background:#ede9fe;padding:1px 6px;border-radius:6px}.chat-meta{display:flex;align-items:center;gap:6px;color:#94a3b8;font-size:11px}.chat-who{font-weight:700;color:#475569}.chat-time{margin-left:auto}.chat-act{border:0;background:transparent;cursor:pointer;font-size:12px;opacity:.55;padding:0 2px}.chat-act:hover{opacity:1}.chat-body{background:#f1f5f9;border-radius:8px;padding:6px 9px;margin-top:2px;word-break:break-word}.chat-composer{display:flex;gap:6px;margin-top:8px}.chat-composer input{flex:1;padding:8px 10px;border:1.5px solid #dbe3ee;border-radius:9px;font:inherit}.chat-muted{margin-top:8px;padding:8px 10px;background:#fef2f2;color:#b91c1c;border-radius:9px;font-size:12.5px;font-weight:600}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.admin-h{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:#94a3b8;margin:14px 0 6px}.btn.danger{background:#dc2626;color:#fff}.btn.danger:hover{background:#b91c1c}#nav-admin.active,#nav-admin{color:#b45309}.dm-log{display:flex;flex-direction:column;gap:6px;max-height:46vh;overflow-y:auto;padding:4px 2px}.dm-row{display:flex}.dm-row.self{justify-content:flex-end}.dm-body{background:#f1f5f9;border-radius:9px;padding:6px 10px;font-size:13px;max-width:82%;word-break:break-word}.dm-row.self .dm-body{background:#dbeafe}.offer-card{border:1.5px solid #dbe3ee;border-radius:11px;padding:9px 11px;margin:4px 0;background:#fff}.offer-card.ok{border-color:#86efac;background:#f0fdf4}.offer-card.bad{opacity:.7}.offer-head{font-size:13.5px}.offer-total{font-size:12px;color:#475569;margin:2px 0 6px}.offer-exp{color:#b45309;font-weight:700}.offer-modal{width:min(560px,94vw);max-height:90vh;padding:0;display:flex;flex-direction:column;overflow:hidden}.offer-modal-head{padding:24px 28px 12px}.offer-modal-head h1{font-size:22px;margin:0 0 2px;color:#0f172a}.offer-sub{color:#64748b;font-size:13px}.offer-scroll{padding:4px 28px 8px;overflow-y:auto;flex:1}.offer-lbl{display:block;font-size:12px;font-weight:700;color:#64748b;margin:14px 0 6px;text-transform:uppercase;letter-spacing:.3px}.offer-sides{display:flex;gap:10px}.side-card{flex:1;border:2px solid #dbe3ee;border-radius:12px;padding:12px;cursor:pointer;background:#fff;text-align:left;display:flex;flex-direction:column;gap:3px;transition:border .12s,background .12s}.side-card:hover:not(:disabled){border-color:#93b4f0}.side-card.selected{border-color:#1d4ed8;background:#eff5ff}.side-card:disabled{opacity:.5;cursor:default}.side-card .sc-icon{font-size:22px}.side-card .sc-title{font-weight:800;font-size:15px;color:#0f172a}.side-card .sc-desc{font-size:11.5px;color:#64748b;line-height:1.35}.prod-picker{display:flex;flex-wrap:wrap;gap:8px}.prod-chip{border:1.5px solid #dbe3ee;border-radius:999px;padding:7px 14px;cursor:pointer;background:#fff;font-size:13.5px;font-weight:600;color:#334155;display:inline-flex;align-items:center;gap:6px}.prod-chip:hover:not(:disabled){border-color:#93b4f0}.prod-chip.selected{border-color:#1d4ed8;background:#eff5ff;color:#1d4ed8}.prod-chip:disabled{opacity:.6;cursor:default}.offer-two{display:flex;gap:14px}.offer-col{flex:1}.qty-stepper{display:flex;align-items:stretch;gap:6px}.qty-stepper input{flex:1;text-align:center;padding:10px;border:1.5px solid #dbe3ee;border-radius:8px;font-size:15px;font-weight:700;outline:none}.qty-stepper input:focus{border-color:#1d4ed8}.qs-btn{width:40px;border:1.5px solid #dbe3ee;border-radius:8px;background:#eef2f7;font-size:20px;font-weight:700;color:#334155;cursor:pointer}.qs-btn:hover{filter:brightness(.97)}.price-input{display:flex;align-items:center;border:1.5px solid #dbe3ee;border-radius:8px;overflow:hidden}.price-input:focus-within{border-color:#1d4ed8}.price-input .pi-cur{padding:0 10px;color:#64748b;font-weight:700}.price-input input{flex:1;border:none;padding:10px 10px 10px 0;font-size:15px;font-weight:700;outline:none}.offer-ctx{display:flex;gap:12px;flex-wrap:wrap;font-size:11.5px;color:#64748b;margin-top:6px}.offer-ctx b{color:#0f172a}.expiry-row{display:flex;gap:8px;flex-wrap:wrap}.expiry-chip{border:1.5px solid #dbe3ee;border-radius:8px;padding:7px 14px;cursor:pointer;background:#fff;font-size:13px;font-weight:700;color:#334155}.expiry-chip:hover{border-color:#93b4f0}.expiry-chip.selected{border-color:#1d4ed8;background:#eff5ff;color:#1d4ed8}.offer-current{border:1.5px solid #dbe3ee;border-radius:10px;padding:10px 12px;background:#f8fafc;margin-bottom:4px}.offer-current .oc-label{font-size:11px;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.3px}.offer-current .oc-line{font-size:14.5px;font-weight:700;color:#0f172a;margin-top:3px}.offer-review{border:1.5px solid #dbe3ee;border-radius:12px;padding:14px 16px;margin-top:16px;background:#f8fafc}.offer-review .orv-title{font-size:12px;font-weight:800;letter-spacing:.4px;color:#1d4ed8}.offer-review .orv-company{font-size:13px;color:#334155;margin:2px 0 8px;font-weight:600}.offer-review .orv-line{font-size:16px;font-weight:800;color:#0f172a;margin-bottom:6px}.offer-review .orv-kv{display:flex;justify-content:space-between;font-size:13px;color:#475569;padding:2px 0}.offer-review .orv-total{display:flex;justify-content:space-between;font-size:16px;font-weight:800;color:#0f172a;border-top:1px solid #e2e8f0;margin-top:8px;padding-top:8px}.offer-err{min-height:18px;font-size:12.5px;margin-top:8px}.offer-err.error{color:#dc2626;font-weight:600}.offer-err.warn{color:#b45309}.offer-actions{display:flex;gap:10px;padding:14px 28px 22px;border-top:1px solid #eef2f7}.offer-actions .btn{flex:1}html.touch .controls-hint{display:none}@media (pointer: coarse){.controls-hint{display:none!important}}.topbar{top:calc(12px + env(safe-area-inset-top))}.company-bar{top:calc(70px + env(safe-area-inset-top))}.nav{bottom:calc(16px + env(safe-area-inset-bottom))}.mobile-hint{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;pointer-events:auto;display:flex;align-items:flex-end;justify-content:center;padding:0 12px calc(96px + env(safe-area-inset-bottom));background:#0f172a47}.mobile-hint .mh-card{background:#fffffffa;border-radius:16px;padding:18px 20px;width:min(360px,92vw);box-shadow:0 16px 40px #0f172a4d}.mh-title{font-weight:800;font-size:17px;margin-bottom:12px;color:#0f172a}.mh-row{display:flex;align-items:center;gap:12px;font-size:14.5px;color:#334155;padding:5px 0}.mh-ic{font-size:22px;width:28px;text-align:center}.mobile-hint .btn{margin-top:14px;width:100%}@media (max-width: 640px),(max-height: 500px){#langbar{top:calc(8px + env(safe-area-inset-top));left:8px;right:auto;padding:3px;gap:2px}#langbar button{padding:6px;min-height:38px}#langbar .llabel{display:none}#langbar .lflag{margin-right:0}.topbar{left:92px;right:8px;transform:none;justify-content:flex-start;gap:3px;padding:6px 8px;border-radius:12px;max-width:none;width:auto;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.topbar::-webkit-scrollbar{display:none}.stat{min-width:0;padding:0 4px}.stat .k,.stat .v{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:84px}.stat .v{font-size:13.5px}.stat .k{font-size:8.5px;letter-spacing:.3px}.stat:has(#st-online),.stat:has(#st-online)+.sep{display:none}.sep{height:22px}.xpbar{width:48px}.account-btn{padding:4px}.account-btn .acc-name{max-width:52px;font-size:12px}.company-bar{top:calc(58px + env(safe-area-inset-top));left:92px;right:8px;transform:none;justify-content:flex-start;padding:5px 8px;gap:6px;max-width:none;width:auto;flex-wrap:nowrap;overflow:hidden}.company-bar .company-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.company-name{max-width:120px;font-size:12px}.company-meta{font-size:11px}.nav{left:0;right:0;bottom:0;transform:none;max-width:100%;border-radius:0;z-index:30;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:4px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav button{flex:0 0 auto;padding:10px 14px;min-height:44px;font-size:13px;white-space:nowrap}.panel{top:env(safe-area-inset-top);left:0;right:0;bottom:auto;width:100%;max-width:100%;border-radius:0;z-index:12}.panel.visible{height:calc(var(--app-vh, 100dvh) - env(safe-area-inset-top) - 56px)}.panel.visible~.urgent-banner,.panel.visible~.announce-banner,.panel.visible~.event-banner,.panel.visible~.objectives{display:none!important}body:has(.panel.visible) #langbar,#hud:has(.panel.visible) .district-bar{display:none!important}.panel-head{padding:12px 16px 8px}.panel-head h2{font-size:16px;max-width:72vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-head .close{width:40px;height:40px;font-size:18px}.panel-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}.panel-tabs::-webkit-scrollbar{display:none}.panel-tabs button{flex:0 0 auto;min-height:40px;padding:9px 12px;white-space:nowrap}.panel-body{padding:12px 14px calc(16px + env(safe-area-inset-bottom))}.objectives{display:none!important}.announce-banner{top:calc(114px + env(safe-area-inset-top));left:8px;right:8px;transform:none;max-width:none;font-size:11.5px;padding:5px 10px}.announce-banner .ab-msg{max-width:50vw}.urgent-banner{top:calc(154px + env(safe-area-inset-top));left:8px;right:8px;transform:none;max-width:none;font-size:11.5px;flex-wrap:wrap;gap:4px 8px;padding:5px 10px;align-items:center}.urgent-banner .ub-title,.urgent-banner .ub-hint{display:none}.event-banner{top:calc(192px + env(safe-area-inset-top));left:8px;right:8px;transform:none;max-width:none;font-size:11.5px;padding:5px 10px}#toasts{top:calc(230px + env(safe-area-inset-top));width:calc(100vw - 24px)}.toast{max-width:100%}.district-bar{bottom:calc(62px + env(safe-area-inset-bottom));max-width:calc(100vw - 16px);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.district-bar::-webkit-scrollbar{display:none}.district-bar .dc-name,.district-bar .dc-meta{white-space:nowrap}.mira{right:8px;left:8px;width:auto;bottom:calc(128px + env(safe-area-inset-bottom))}.panel.visible~.mira,.panel.visible~.mira-note{right:8px;display:none}.overlay.modal{align-items:flex-end}.card{width:100%;max-width:100vw;border-radius:16px 16px 0 0;padding:20px 18px calc(20px + env(safe-area-inset-bottom));max-height:var(--app-vh, 94dvh);overflow-y:auto}.offer-modal{width:100%;max-width:100vw;max-height:var(--app-vh, 94dvh);border-radius:16px 16px 0 0;padding:0;overflow:hidden}.offer-sides{flex-direction:column}.offer-two{flex-direction:column;gap:10px}.offer-scroll{padding:4px 18px 8px}.offer-actions{padding:12px 18px calc(16px + env(safe-area-inset-bottom))}.dm-log,.chat-log{max-height:none;flex:1 1 auto}.chat-panel,.dm-panel{display:flex;flex-direction:column;height:100%}.btn.small{padding:9px 14px;min-height:40px}.qs-btn{width:46px;min-height:44px}.qtyrow input,.order input,.mkt-form input,.mkt-form select,.field input{min-height:40px}.chat-composer input,#dm-input,.chat-composer .btn,.prod-chip,.expiry-chip,.side-card{min-height:42px}.biz-chip{width:40px;height:40px}.mkt-form select,.mkt-form input{flex:1 1 auto;min-width:0}.order input{width:68px}.brief-scroll{max-height:none}}@media (min-width: 641px) and (max-width: 900px){.panel{width:360px}.nav button{padding:9px 14px;min-height:44px}}@media (min-width: 641px) and (max-width: 1024px) and (min-height: 501px){#hud:has(.panel.visible) .urgent-banner,#hud:has(.panel.visible) .announce-banner,#hud:has(.panel.visible) .event-banner,#hud:has(.panel.visible) .objectives,#hud:has(.panel.visible) .district-bar{display:none!important}.urgent-banner{max-width:70vw}.urgent-banner .ub-title,.urgent-banner .ub-hint{display:none}.announce-banner{max-width:70vw}.announce-banner .ab-msg{max-width:40vw}}@media (max-height: 500px){.announce-banner,.event-banner{display:none!important}.urgent-banner{top:calc(112px + env(safe-area-inset-top));left:8px;right:auto;transform:none;max-width:66vw}#toasts{top:calc(112px + env(safe-area-inset-top));left:auto;right:8px;transform:none;width:min(320px,30vw);align-items:flex-end}.mira{left:8px;right:auto;width:min(430px,52vw);bottom:calc(60px + env(safe-area-inset-bottom));max-height:calc(var(--app-vh, 100dvh) - 176px);overflow-y:auto}.panel.visible~.mira{display:none!important}.district-bar{left:auto;right:8px;transform:none}}.lvl-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.lvl-badge{width:46px;height:46px;border-radius:12px;background:#1d4ed8;color:#fff;font-weight:900;font-size:20px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.lvl-badge.max{background:linear-gradient(135deg,#f59e0b,#d97706)}.lvl-lv{font-weight:800;font-size:16px;color:#0f172a}.lvl-tier{font-size:12.5px;font-weight:700;color:#64748b}.lvl-xp{font-size:12.5px;color:#475569;margin-bottom:4px;font-variant-numeric:tabular-nums}.lvl-bar{height:10px;border-radius:6px;background:#e2e8f0;overflow:hidden;margin-bottom:12px}.lvl-bar>div{height:100%;background:linear-gradient(90deg,#3b82f6,#1d4ed8);border-radius:6px}.lvl-next,.lvl-slots{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background:#f8fafc;border-radius:10px;margin-bottom:8px;font-size:13px}.lvl-next .k,.lvl-slots .k{color:#64748b;font-weight:700}.lvl-next .v,.lvl-slots .v{font-weight:700;color:#0f172a}.lvl-roadmap-h,.prod-h{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:#94a3b8;margin:16px 0 8px}.road-tier{margin-bottom:12px}.road-tier-h{font-weight:800;font-size:13px;color:#334155;margin-bottom:5px}.road-tier-h small{color:#94a3b8;font-weight:600}.road-row{display:flex;align-items:center;gap:10px;padding:5px 8px;border-radius:8px;font-size:12.5px;border-left:3px solid transparent}.road-row .road-lv{width:26px;text-align:center;font-weight:800;color:#94a3b8}.road-row .road-rew{color:#475569}.road-row.done{opacity:.6}.road-row.done .road-lv{color:#16a34a}.road-row.cur{background:#eef4ff;border-left-color:#1d4ed8}.road-row.cur .road-lv{color:#1d4ed8}.road-row.milestone{background:#fffbeb}.road-row.milestone.cur{background:#eef4ff}.road-row.milestone .road-lv{color:#b45309}.slot-head{font-weight:800;font-size:14px;color:#0f172a;margin-bottom:10px;padding:8px 12px;background:#eff5ff;border-radius:10px;text-align:center}.prod-list{display:flex;flex-direction:column;gap:8px}.prod-card{border:1.5px solid #dbe3ee;border-radius:12px;padding:10px 12px;background:#fff}.prod-card.owned{border-color:#c7dbff;background:#f8fbff}.prod-card.locked{opacity:.72}.pc-head{display:flex;align-items:center;gap:6px;font-size:14px;flex-wrap:wrap}.pc-status{margin-left:auto;font-size:10px;font-weight:800;padding:2px 8px;border-radius:999px}.pc-status.on{background:#dcfce7;color:#15803d}.pc-status.off{background:#f1f5f9;color:#94a3b8}.cap-badge{font-size:9.5px;font-weight:800;padding:2px 7px;border-radius:999px;letter-spacing:.4px}.cap-badge.produce{background:#dbeafe;color:#1d4ed8}.cap-badge.retail{background:#fef3c7;color:#b45309}.rec{font-size:12px;color:#475569;margin:6px 0;background:#f8fafc;border-radius:8px;padding:6px 8px}.rec .rec-in{color:#334155}.rec.retail{color:#b45309}.pc-req{font-size:12.5px;color:#475569;margin:4px 0 8px;font-weight:600}.pc-locked{font-size:12px;color:#b45309;font-weight:600;margin-top:4px}.prod-card .btn.small{width:100%;margin-top:4px}.license-card{width:min(440px,94vw)}.license-card .lic-prod{font-size:18px;font-weight:800;margin:4px 0;display:flex;align-items:center;gap:8px}.license-card .lic-sub{color:#64748b;font-size:13px;margin-bottom:10px}.license-card .lic-rows{margin:12px 0}.supply-overall{text-align:center;padding:14px;border-radius:12px;margin-bottom:12px}.supply-overall.healthy{background:#dcfce7;color:#15803d}.supply-overall.central_dependent{background:#fef9c3;color:#a16207}.supply-overall.critical{background:#fee2e2;color:#b91c1c}.supply-overall .sv-ratio{font-size:30px;font-weight:900}.supply-overall .sv-label{font-size:12px;font-weight:800;letter-spacing:.5px;text-transform:uppercase}.supply-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:#f8fafc;margin-bottom:6px}.supply-row .sr-name{font-weight:700;width:90px}.supply-bar{flex:1;height:14px;border-radius:7px;background:#fecaca;overflow:hidden}.supply-bar>div{height:100%;background:linear-gradient(90deg,#4ade80,#16a34a)}.supply-row .sr-pct{font-weight:800;width:44px;text-align:right;font-size:13px}.pq{margin-bottom:12px}.pq.empty{padding:10px 12px;border-radius:10px;background:#f1f5f9;color:#64748b;font-size:13px;text-align:center}.pq-now{border:1.5px solid #c7dbff;border-radius:12px;padding:10px 12px;background:#f8fbff;margin-bottom:8px}.pq-now.blocked{border-color:#fca5a5;background:#fef2f2}.pq-now-h{font-size:11px;font-weight:800;letter-spacing:.6px;color:#2563eb;text-transform:uppercase}.pq-now.blocked .pq-now-h{color:#dc2626}.pq-job{font-size:15px;margin:3px 0}.pq-bar{height:10px;border-radius:6px;background:#dbeafe;overflow:hidden;margin:6px 0 4px}.pq-bar>div{height:100%;background:linear-gradient(90deg,#60a5fa,#2563eb);transition:width .6s linear}.pq-sub{font-size:12px;color:#64748b}.pq-next-h{font-size:11px;font-weight:800;letter-spacing:.5px;color:#94a3b8;text-transform:uppercase;margin:6px 0 4px}.pq-row{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:8px;background:#f8fafc;margin-bottom:4px;font-size:13px}.pq-row .pq-i{font-weight:800;color:#94a3b8;width:18px}.pq-note{font-size:11px;color:#94a3b8;margin-top:8px;line-height:1.4}.pp-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.pp-tab{border:1.5px solid #dbe3ee;border-radius:999px;background:#fff;padding:6px 12px;font-weight:700;font-size:13px;cursor:pointer}.pp-tab.active{border-color:#2563eb;background:#eff5ff;color:#1d4ed8}.pp-recipe{margin-bottom:10px}.pp-qhead{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.pp-qhead span:first-child{font-weight:800}.pp-max-lbl{font-size:11px;font-weight:800;letter-spacing:.4px;color:#16a34a}.pp-qrow{display:flex;align-items:center;gap:6px;margin-bottom:10px}.pp-qrow input{flex:1;min-width:60px;text-align:center;font-weight:800;font-size:16px;padding:8px;border:1.5px solid #dbe3ee;border-radius:10px}.pp-qrow .btn.small{min-width:42px}.pp-reqs{border:1px solid #eef2f7;border-radius:10px;overflow:hidden;margin-bottom:10px}.pp-req{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:8px 10px;border-bottom:1px solid #f1f5f9;font-size:13px}.pp-req:last-child{border-bottom:none}.pp-req.short{background:#fef2f2}.pp-req .pp-name{font-weight:700}.pp-req .pp-flow{font-variant-numeric:tabular-nums;color:#475569}.pp-req .pp-need{font-size:11px;color:#64748b;text-align:right}.pp-out{border-radius:10px;background:#f8fafc;padding:8px 12px;margin-bottom:10px}.pp-missing{border:1.5px solid #fca5a5;border-radius:10px;padding:10px;background:#fef2f2;margin-bottom:10px}.pp-missing-h{font-size:11px;font-weight:800;letter-spacing:.5px;color:#dc2626;text-transform:uppercase;margin-bottom:6px}.pp-mrow{display:flex;justify-content:space-between;font-size:13px;padding:3px 0}.pp-missing .btn{margin-top:8px;width:100%}.pp-start{width:100%;margin-top:4px}.pp-profit{border:1.5px solid #cbe8d4;border-radius:10px;padding:8px 12px;margin-bottom:10px;background:#f2fbf5}.pp-profit.unknown{border-color:#e2e8f0;background:#f8fafc;color:#64748b;font-size:12px;text-align:center}.pp-profit-h{font-size:11px;font-weight:800;letter-spacing:.6px;color:#16a34a;text-transform:uppercase;margin-bottom:4px}.pp-profit-note{font-size:10px;color:#94a3b8;margin-top:6px;line-height:1.4}.invrow .cap.econ{color:#475569}.spec-avail{border:1.5px solid #c7b3ff;border-radius:12px;padding:10px 12px;margin:12px 0;background:#f7f3ff}.spec-avail-h{font-weight:800;color:#6d28d9;margin-bottom:4px}.spec-avail .btn{margin-top:8px}.spec-chosen{border:1.5px solid #c7dbff;border-radius:12px;padding:10px 12px;margin:12px 0;background:#f8fbff}.spec-chosen-h{font-size:11px;font-weight:800;letter-spacing:.5px;color:#2563eb;text-transform:uppercase}.spec-chosen .spec-name{font-size:15px;font-weight:800;margin:2px 0}.spec-chosen .spec-fam{font-size:13px;color:#475569}.spec-locked{margin:12px 0}.city-icon-badge{font-size:10px;font-weight:800;letter-spacing:.5px;color:#b45309;background:#fef3c7;padding:2px 6px;border-radius:999px;vertical-align:middle}.spec-modal{width:min(560px,96vw)}.spec-warn{font-size:12px;color:#b45309;background:#fffbeb;border-radius:8px;padding:6px 10px;margin:8px 0}.spec-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.spec-card{border:1.5px solid #dbe3ee;border-radius:12px;padding:12px;background:#fff}.spec-card-h{font-size:16px;font-weight:800;margin-bottom:6px}.spec-card-best{font-size:10px;font-weight:800;letter-spacing:.5px;color:#94a3b8;text-transform:uppercase}.spec-card-fam{font-size:13px;margin:3px 0 8px}.spec-card-str{font-size:12px;color:#475569;margin-bottom:10px}.spec-card .btn{width:100%}.spec-confirm{width:min(420px,94vw);text-align:center}.spec-confirm-name{font-size:18px;font-weight:800;margin:8px 0}.pp-repeat{display:flex;align-items:center;gap:8px;margin:8px 0;padding:6px 10px;border-radius:10px;background:#f1f5f9}.pp-repeat-lbl{font-weight:800;font-size:13px}.pp-repeat-n{min-width:48px;text-align:center;font-weight:800}.pp-repeat-max{color:#94a3b8;font-size:12px}.pq-repeat{font-size:11px;font-weight:800;color:#7c3aed}@media (max-width: 640px),(max-height: 500px){.spec-cards{grid-template-columns:1fr}.spec-card .btn,.pp-repeat .btn{min-height:44px}}.admin-prod-row{border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px;margin-bottom:6px}.admin-prod-row .apr-main{font-size:13px}.admin-prod-row .apr-sub{font-size:12px;color:#64748b;margin:2px 0 6px}.admin-prod-row .apr-acts{display:flex;gap:6px}.admin-prod-row .apr-acts .btn{flex:1}@media (max-width: 640px),(max-height: 500px){.prod-card .btn.small,.license-card .offer-actions .btn{min-height:44px}.road-row{min-height:34px}.pp-qrow .btn.small,.pp-qrow input,.pp-start,.pp-tab{min-height:44px}.pp-req{grid-template-columns:1fr auto}.pp-req .pp-need{grid-column:1 / -1;text-align:left}}
