:root{--navy:#0F1B2D;--navy2:#15263D;--navy3:#1D3250;--teal:#0B7F70;--teal2:#12B5A0;--bg:#F3F4F6;--line:#E5E7EB;--line2:#F0F1F3;--text:#111827;--muted:#6B7280}
*{box-sizing:border-box}
body{margin:0;font-family:'Onest',system-ui,sans-serif;font-size:14px;color:var(--text);background:var(--bg)}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:14px;color:var(--text)}
.shell{display:flex;min-height:100vh}
.side{flex:0 0 232px;width:232px;background:var(--navy);color:#fff;padding:20px 14px;display:flex;flex-direction:column;gap:24px;position:sticky;top:0;height:100vh}
.logo{display:flex;align-items:center;gap:10px;padding:0 6px;font-weight:700;font-size:16px}
.logo i{width:32px;height:32px;border-radius:9px;background:var(--teal2);display:flex;align-items:center;justify-content:center}
.ws{padding:8px 12px;border-radius:12px;border:1px solid #263A57;background:var(--navy2);min-height:52px;display:flex;flex-direction:column;gap:2px;font-size:13px}
.ws small{color:#9FB0C8;font-size:12px}
.nav{display:flex;flex-direction:column;gap:4px}
.nav a{display:flex;align-items:center;gap:12px;height:44px;padding:0 12px;border-radius:10px;color:#B9C6DA}
.nav a:hover{color:#fff}
.nav a.on{background:var(--navy3);color:#fff;font-weight:600}
.nav a span{flex:1}
.nav a em{font-style:normal;color:#7F92AE;font-size:12px}
.nav a b{min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--teal2);color:var(--navy);font-size:12px;display:flex;align-items:center;justify-content:center}
.me{margin-top:auto;display:flex;align-items:center;gap:10px;padding:10px 6px;border-top:1px solid #22344F}
.me .av{width:36px;height:36px;border-radius:18px;background:#2B4468;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px}
.me small{display:block;color:#8FA2BF;font-size:12px}
.me button{margin-left:auto;background:none;border:none;color:#8FA2BF;font-size:12px}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.top{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 24px;background:#fff;border-bottom:1px solid var(--line)}
.top h1{margin:0;font-size:20px;font-weight:700;letter-spacing:-.01em;margin-right:8px}
.top .acts{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}
.page{padding:24px;display:flex;flex-direction:column;gap:20px}
.btn{height:44px;padding:0 16px;border-radius:10px;border:1px solid #D1D5DB;background:#fff;font-size:14px;font-weight:500;display:inline-flex;align-items:center;gap:8px}
.btn.pri{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:600}
.btn.sm{height:32px;padding:0 12px;border-radius:8px;font-size:13px}
.btn.danger{color:#A32626}
.btn:disabled{opacity:.5;cursor:default}
.tiles{display:flex;flex-wrap:wrap;gap:16px}
.tile{flex:1 1 200px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:6px}
.tile span{font-size:13px;color:var(--muted)}
.tile b{font-size:28px;letter-spacing:-.02em}
.tile b small{font-size:14px;font-weight:500;color:var(--muted)}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.chips{display:flex;flex-wrap:wrap;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line2);align-items:center}
.chip{height:32px;padding:0 12px;display:inline-flex;align-items:center;border-radius:16px;background:var(--bg);color:#374151;font-size:13px;font-weight:500;border:none}
.chip.on{background:#111827;color:#fff;font-weight:600}
.tbl{overflow-x:auto}
.row{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line2);gap:8px;min-width:820px}
.row.head{background:#F9FAFB;color:var(--muted);font-size:12px;font-weight:600;padding:10px 16px}
.row>*{min-width:0}
.col1{flex:1 1 0}.col2{flex:2 1 0}.col15{flex:1.5 1 0}
.sub{font-size:12px;color:var(--muted)}
.tag{height:22px;padding:0 8px;display:inline-flex;align-items:center;border-radius:6px;font-size:12px;font-weight:600;white-space:nowrap}
.t-ok{background:#DDF4E7;color:#0F6537}.t-warm{background:#E3EEFC;color:#1F4FA3}.t-bad{background:#FBE1E1;color:#8E1F1F}
.t-wait{background:#FFF1D6;color:#7A4F00}.t-gray{background:#ECEDEF;color:#3F4752}
.bar{height:6px;border-radius:3px;background:var(--line);overflow:hidden}.bar i{display:block;height:6px;border-radius:3px;background:var(--teal)}
.empty{padding:40px 20px;text-align:center;color:var(--muted)}
.empty b{display:block;color:var(--text);font-size:15px;margin-bottom:6px}
.note{padding:12px 16px;border-radius:10px;font-size:13px;line-height:1.45}
.note.warn{background:#FFF1D6;color:#5E3C00}.note.info{background:#E3F5F2;color:#0B5F54}.note.bad{background:#FDEDEC;color:#7A1F18}
/* inbox */
.inbox{display:flex;flex:1;min-height:calc(100vh - 69px)}
.list{flex:0 0 360px;width:360px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:auto;max-height:calc(100vh - 69px)}
.conv{display:flex;gap:12px;width:100%;padding:14px 16px;border:none;border-bottom:1px solid var(--line2);text-align:left;background:#fff}
.conv.on{background:#E3F5F2}
.av2{flex:0 0 40px;width:40px;height:40px;border-radius:20px;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px;background:#DCE7F9}
.conv .t{display:flex;justify-content:space-between;gap:8px}
.conv .p{font-size:13px;color:#4B5563;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.conv .u{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--teal);color:#fff;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.thread{flex:1;min-width:0;display:flex;flex-direction:column;max-height:calc(100vh - 69px)}
.msgs{flex:1;overflow:auto;padding:20px 24px;display:flex;flex-direction:column;gap:10px}
.b{max-width:70%;padding:10px 14px;border-radius:14px;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.b small{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.b.in{background:#fff;border:1px solid var(--line);align-self:flex-start}
.b.out{background:#D9F2EE;align-self:flex-end}
.compose{display:flex;gap:8px;padding:12px 16px;background:#fff;border-top:1px solid var(--line)}
.compose textarea{flex:1;border:1px solid #D1D5DB;border-radius:10px;padding:10px 12px;resize:none;height:44px}
.details{flex:0 0 280px;width:280px;background:#fff;border-left:1px solid var(--line);padding:20px;display:flex;flex-direction:column;gap:14px;overflow:auto}
.details dl{margin:0;display:flex;flex-direction:column;gap:2px}.details dt{font-size:12px;color:var(--muted)}.details dd{margin:0 0 8px}
/* modal */
.modal-bg{position:fixed;inset:0;background:rgba(15,27,45,.5);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}
.modal{background:#fff;border-radius:16px;width:100%;max-width:560px;max-height:92vh;overflow:auto;padding:24px;display:flex;flex-direction:column;gap:14px}
.modal h2{margin:0;font-size:18px}
.f{display:flex;flex-direction:column;gap:6px}
.f label{font-size:13px;font-weight:600}
.f input,.f select,.f textarea{border:1px solid #D1D5DB;border-radius:10px;padding:10px 12px;min-height:44px;width:100%}
.f textarea{min-height:90px;resize:vertical}
.f small{color:var(--muted);font-size:12px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mfoot{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.err{color:#A32626;font-size:13px}
/* funnel */
.fr{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;min-height:48px}
.fr .l{flex:0 0 210px;font-weight:600}.fr .bw{flex:1 1 260px;height:32px;border-radius:8px;background:var(--bg);overflow:hidden}.fr .bw i{display:block;height:32px;border-radius:8px}
.fr .n{flex:0 0 64px;text-align:right;font-weight:700;font-size:16px}.fr .c{flex:0 0 150px;font-size:13px;color:var(--muted)}
.board{display:flex;gap:12px;min-width:1120px;align-items:flex-start}
.col{flex:1 1 0;min-width:0;min-height:200px;background:#E9EBEF;border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px}
.col.over{outline:2px dashed var(--teal)}
.col h4{margin:0;display:flex;justify-content:space-between;align-items:center;padding:2px 4px 4px;font-size:13px}
.kc{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:4px;cursor:grab}
.kc .sub{display:flex;justify-content:space-between;gap:8px}
.login{max-width:380px;margin:12vh auto;background:#fff;border-radius:16px;padding:28px;border:1px solid var(--line);display:flex;flex-direction:column;gap:14px}
#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#111827;color:#fff;padding:12px 18px;border-radius:10px;display:none;z-index:99;max-width:90vw}
.sw{display:flex;align-items:center;gap:10px}
@media(max-width:900px){.side{display:none}.list{flex-basis:100%;width:100%}.details{display:none}.thread{display:none}.inbox.open .list{display:none}.inbox.open .thread{display:flex}}
input[type=radio],input[type=checkbox],.f input[type=radio],.f input[type=checkbox]{width:18px;height:18px;min-height:0;padding:0;margin:0;flex:0 0 auto}
.f .sw{font-weight:400}
.mfoot{margin-top:6px}

.banner{display:flex;align-items:center;gap:14px;padding:10px 24px;background:#FFF1D6;color:#5E3C00;font-size:13px;border-bottom:1px solid #F1D79B}
.banner span{flex:1}.banner button{background:none;border:none;font-size:20px;color:#5E3C00;line-height:1}
.navbtn{display:flex;align-items:center;gap:10px;background:none;border:none;color:#C5D1E3;padding:8px 12px;border-radius:10px;font-size:14px;text-align:left}
.navbtn:hover{background:#15263D}.navbtn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.navbtn{margin-top:auto}.navbtn+.me{margin-top:0}
