:root{--navy:#2B2878;--navy-deep:#1D1B57;--sky:#3E9BBF;--sky-ink:#23708F;--sky-soft:#E6F3F8;--gold:#E0A445;--gold-ink:#7A5414;--gold-soft:#FBF1DF;--ink:#24262E;--muted:#545A6B;--line:#DCE3EA;--bg:#F6F9FB;--white:#fff;--on-navy:#D5D7F0;--err:#B8361F;--err-soft:#FDF4F2;--ok:#17694A;--ok-soft:#E5F4EE;--disp:"Plus Jakarta Sans",system-ui,sans-serif;--body:"Source Sans 3",system-ui,sans-serif}*{box-sizing:border-box}.app{position:relative;width:100%;overflow:hidden;container-type:inline-size;font-family:var(--body);font-size:16px;line-height:1.45;color:var(--ink);background:var(--bg)}.shell{display:flex;height:100%;min-height:0}.side{flex:0 0 228px;background:var(--navy-deep);color:var(--on-navy);padding:20px 12px;display:flex;flex-direction:column;gap:4px}.logo{font:800 20px var(--disp);color:#fff;padding:4px 12px 20px}.logo span{color:var(--gold)}.nav{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 12px;border-radius:8px;font-weight:600;color:var(--on-navy);transition:background .15s}.nav:hover{background:#ffffff14}.nav.on{background:#fff;color:var(--navy)}.nav:focus-visible,.btn:focus-visible,.chip:focus-visible,.link:focus-visible,.card:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.nav svg,.btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}.sidefoot{margin-top:auto;padding:12px;font-size:13px;color:var(--on-navy)}.col{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 24px;background:#fff;border-bottom:1px solid var(--line)}.top h1{margin:0;font:800 22px var(--disp);color:var(--navy)}.sub{font-size:14px;color:var(--muted)}.seg{display:flex;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:3px}.seg .chip{border:0;background:transparent;min-height:38px}.seg .chip.on{background:var(--navy);color:#fff}.main{flex:1;min-height:0;overflow:auto;padding:20px 24px 32px;display:flex;flex-direction:column;gap:16px}.bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.chip{font:600 14px var(--body);min-height:44px;padding:6px 12px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;transition:background .15s}.chip:hover{background:var(--sky-soft)}.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}.input,.select,.area{font:400 16px var(--body);color:var(--ink);background:#fff;border:1px solid #8B94A6;border-radius:8px;padding:9px 12px;min-height:44px;width:100%}.area{min-height:76px;resize:vertical}.search{flex:1 1 220px;width:auto}.btn{font:700 15px var(--body);display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--navy);cursor:pointer;text-decoration:none;transition:background .15s}.btn:hover{background:var(--sky-soft)}.btn.pri{background:var(--navy);border-color:var(--navy);color:#fff}.btn.pri:hover{background:var(--navy-deep)}.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--navy-deep)}.btn.gold:hover{background:#d2953a}.btn.danger{color:var(--err)}.btn.grow{flex:1}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.panel h2{margin:0 0 12px;font:700 17px var(--disp);color:var(--navy)}.tablebox{background:#fff;border:1px solid var(--line);border-radius:12px;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:15px}th{font-size:13px;text-align:left;color:var(--muted);font-weight:700;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:0}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.link{all:unset;cursor:pointer;font-weight:700;color:var(--navy);text-decoration:underline;text-underline-offset:3px;min-height:32px;display:inline-flex;align-items:center}.badge{display:inline-block;font-size:13px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.b-new{background:var(--sky-soft);color:var(--sky-ink)}.b-call{background:#e4e5f5;color:var(--navy)}.b-won{background:var(--ok-soft);color:var(--ok)}.b-lost{background:var(--err-soft);color:var(--err)}.b-later{background:var(--gold-soft);color:var(--gold-ink)}.b-off{background:#eceff3;color:var(--muted)}.cards{display:none;flex-direction:column;gap:8px}.card{all:unset;box-sizing:border-box;cursor:pointer;display:block;width:100%;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}.cardrow{display:flex;justify-content:space-between;gap:8px;align-items:center}.cardname{font-weight:700;color:var(--navy)}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}.kpi .l{font-size:14px;color:var(--muted)}.kpi .v{font:800 24px var(--disp);color:var(--navy);font-variant-numeric:tabular-nums}.kpi .h{font-size:13px;color:var(--muted)}.hero{background:var(--navy);color:#fff;border-radius:12px;padding:18px 20px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-end}.hero .l{color:var(--on-navy);font-size:15px}.hero .v{font:800 38px var(--disp);color:var(--gold)}.hero .s{font:700 20px var(--disp)}.track{height:10px;border-radius:5px;background:var(--line);overflow:hidden}.fill{height:100%;background:var(--navy)}.hero .track{background:#ffffff40;width:220px;margin-top:6px}.hero .fill{background:var(--gold)}.frow{display:grid;grid-template-columns:110px 1fr 40px;gap:10px;align-items:center;font-size:15px;padding:5px 0}.line{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:15px}.line:last-child{border-bottom:0}.scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#1d1b576b;z-index:5}.drawer{position:absolute;top:0;right:0;bottom:0;width:440px;max-width:100%;background:#fff;z-index:6;display:flex;flex-direction:column}.dhead{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.dhead h2{margin:0;font:800 20px var(--disp);color:var(--navy)}.dbody{flex:1;min-height:0;overflow:auto;padding:14px 16px 24px;display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:14px}.calbox{background:var(--sky-soft);border-radius:10px;padding:10px 12px;font-size:15px}.comm{background:var(--gold-soft);border-radius:10px;padding:10px 12px;font-size:15px;color:var(--ink)}.toast{position:absolute;left:50%;transform:translate(-50%);bottom:84px;background:var(--navy-deep);color:#fff;padding:10px 14px;border-radius:8px;z-index:9;font-size:15px;width:max-content;max-width:90%}.empty{padding:24px;text-align:center;color:var(--muted)}@container (max-width:760px){.shell{flex-direction:column-reverse}.side{flex:none;flex-direction:row;padding:4px 6px;gap:2px}.logo,.sidefoot{display:none}.nav{flex:1;flex-direction:column;gap:2px;font-size:12px;padding:6px 2px;justify-content:center}.nav.on{background:#ffffff24;color:#fff}.top{padding:10px 14px}.top h1{font-size:20px}.main{padding:12px 14px 20px}.tablebox.resp{display:none}.cards{display:flex}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two{grid-template-columns:minmax(0,1fr)}.drawer{width:100%}.kpi .v{font-size:21px}.hero .v{font-size:32px}.seg{width:100%}.seg .chip{flex:1}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}html,body,#root{height:100%;margin:0}.app{height:100dvh}.btn:disabled{opacity:.5;cursor:not-allowed}.login{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--navy-deep);padding:16px;font-family:var(--body)}.login form{background:#fff;border-radius:12px;padding:24px;width:100%;max-width:380px;display:flex;flex-direction:column;gap:12px}.login h1{margin:0;font:800 24px var(--disp);color:var(--navy)}.err{color:var(--err);font-size:15px}.summary{white-space:pre-wrap;margin:8px 0}
