:root{--bg:#f6f7f9;--card:#fff;--line:#e8eaef;--ink:#1b2130;--sub:#6b7385;--accent:#3b5bfd;--red:#d64545;--green:#1f8a5b;--amber:#c98a00}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,'Apple SD Gothic Neo','Pretendard',sans-serif;background:var(--bg);color:var(--ink);font-size:14px}
a{color:inherit;text-decoration:none}
.rail{position:fixed;left:0;top:0;bottom:0;width:72px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;padding-top:14px;gap:4px;z-index:5}
.rail a{width:60px;padding:8px 0;border-radius:10px;text-align:center;font-size:11px;color:var(--sub)}
.rail a span{display:block;font-size:19px;margin-bottom:2px}.rail a.on,.rail a:hover{background:#eef1ff;color:var(--accent)}
.side{position:fixed;left:72px;top:0;bottom:0;width:190px;background:#f1f2f5;border-right:1px solid var(--line);padding:16px 10px;overflow:auto}
.side h3{font-size:14px;margin:4px 8px 12px}.side a{display:block;padding:8px 10px;border-radius:8px;color:#333;margin-bottom:2px}
.side a.on,.side a:hover{background:#e3e6ee;font-weight:600}.side .sec{font-size:11px;color:var(--sub);margin:14px 10px 4px}
.side .co{font-weight:700;font-size:13px;padding:0 8px 10px;border-bottom:1px solid var(--line);margin-bottom:10px}
main{margin-left:262px;padding:22px 28px 60px;max-width:1500px}
.top{display:flex;align-items:center;gap:12px;margin-bottom:16px}.top h1{font-size:20px;margin:0}.top .sp{flex:1}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.card h4{margin:0 0 10px;font-size:13px;display:flex;justify-content:space-between;color:#333}
.kv{display:flex;justify-content:space-between;padding:5px 0 5px 9px;border-left:3px solid #c9d1ff;margin:5px 0}
.kv.b{border-color:#8fd3b6}.kv.c{border-color:#f3c77a}.kv.d{border-color:#f0a3a3}
.big{font-size:22px;font-weight:700;margin:4px 0 8px}.muted{color:var(--sub);font-size:12px}
.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.neg{color:var(--red)}.pos{color:var(--green)}
table.t{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
table.t th{background:#fafbfc;color:var(--sub);font-weight:600;font-size:12px;text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);position:sticky;top:0}
table.t td{padding:8px 10px;border-bottom:1px solid #f0f1f4;vertical-align:middle}table.t tr:hover td{background:#fafbff}
table.t tr.tot td{font-weight:700;background:#f6f8fc}
.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;background:#eef0f5;color:#444}
.pill.blue{background:#e8edff;color:#3049c9}.pill.green{background:#e3f5ec;color:#1f7a4f}.pill.red{background:#fde8e8;color:#b33}.pill.amber{background:#fff3d6;color:#8a6200}
.btn{display:inline-block;border:1px solid var(--line);background:#fff;border-radius:9px;padding:7px 12px;cursor:pointer;font-size:13px}
.btn.p{background:var(--accent);color:#fff;border-color:var(--accent)}
form.f{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
input,select{border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:13px;background:#fff}
.cat{cursor:pointer;border-bottom:1px dashed #aab}.cat.none{color:var(--red)}
.modal{position:fixed;inset:0;background:rgba(20,25,40,.35);display:none;align-items:flex-start;justify-content:center;padding-top:80px;z-index:20}
.modal .box{background:#fff;width:520px;max-height:70vh;border-radius:14px;padding:16px;overflow:auto}
.modal .opt{padding:7px 9px;border-radius:7px;cursor:pointer}.modal .opt:hover{background:#eef1ff}
.banner{background:#fff6e0;border:1px solid #f2dca3;border-radius:12px;padding:10px 14px;margin-bottom:14px;font-size:13px}
.ai{background:linear-gradient(135deg,#eef1ff,#f7f0ff);border:1px solid #dde2ff}
.issue{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid #eef}.issue:last-child{border:0}
.tabs{display:flex;gap:6px;margin-bottom:12px}.tabs a{padding:7px 12px;border-radius:9px;background:#fff;border:1px solid var(--line)}.tabs a.on{background:var(--ink);color:#fff}
.tabbar{display:none}
.menu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.menu-grid a{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;font-weight:600}
.menu-grid a span{display:block;font-size:22px;margin-bottom:6px}
/* ---------- 휴대폰 · 아이패드 ---------- */
@media (max-width: 1100px){
 .side{display:none}
 main{margin-left:72px;padding:18px 18px 60px}
}
@media (max-width: 760px){
 html,body{overflow-x:hidden;max-width:100vw}
 .grid>*,.menu-grid>*{min-width:0}
 .kv span{min-width:0;overflow:hidden;text-overflow:ellipsis}
 body{font-size:15px;-webkit-text-size-adjust:100%}
 .rail{display:none}
 main{margin-left:0;padding:14px 12px calc(84px + env(safe-area-inset-bottom))}
 .top{flex-wrap:wrap;gap:8px}.top h1{font-size:19px;width:100%}
 .hide-m{display:none}
 .grid{grid-template-columns:1fr;gap:10px}
 .card{padding:14px}
 .big{font-size:24px}
 table.t{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap;font-size:13px}
 form.f{gap:6px}form.f input,form.f select{font-size:16px;max-width:100%}
 .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);
   border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom));justify-content:space-around}
 .tabbar a{flex:1;text-align:center;font-size:11px;color:var(--sub);padding:4px 0}
 .tabbar a span{display:block;font-size:21px;line-height:26px}
 .tabbar a.on{color:var(--accent)}
 .tabbar a.up span{background:var(--accent);color:#fff;width:42px;height:42px;line-height:42px;border-radius:50%;margin:-14px auto 0;font-size:26px;box-shadow:0 4px 12px rgba(59,91,253,.35)}
 .tabs{overflow-x:auto;flex-wrap:nowrap!important;white-space:nowrap}
}
/* ---------- 💬 GL Finance와 대화 ---------- */
.chat-wrap{max-width:860px}
.chat-hint{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-bottom:12px;line-height:1.6}
.chat-log{display:flex;flex-direction:column;gap:12px;padding-bottom:12px}
.msg{display:flex;flex-direction:column;max-width:88%}.msg.me{align-self:flex-end;align-items:flex-end}.msg.bot{align-self:flex-start}
.msg .who{font-size:11px;color:var(--sub);margin:0 6px 3px}
.bub{background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px 14px;line-height:1.6;word-break:break-word;min-width:0;max-width:100%}
.msg.me .bub{background:var(--accent);color:#fff;border-color:var(--accent);border-bottom-right-radius:5px}
.msg.bot .bub{border-bottom-left-radius:5px}
.msg.me .bub .muted{color:#dfe5ff}
.bub code{background:#f1f3f8;border-radius:5px;padding:1px 5px;font-size:12.5px}.msg.me .bub code{background:rgba(255,255,255,.2)}
.bub pre{background:#f6f7fa;border-radius:8px;padding:8px 10px;overflow-x:auto;font-size:12px;white-space:pre-wrap}
.bub a{color:var(--accent);text-decoration:underline}.msg.me .bub a{color:#fff}
.chat-h{font-weight:700;margin:6px 0 2px}.chat-li{padding-left:4px}.sp8{height:8px}
.chat-tbl{overflow-x:auto;margin:6px 0}.chat-tbl table.t{font-size:12.5px}
.chat-img{max-width:100%;max-height:420px;border-radius:10px;border:1px solid var(--line);margin:6px 0;display:block}
.chat-file{display:inline-block;margin:4px 0;padding:6px 10px;border:1px solid var(--line);border-radius:9px;text-decoration:none!important}
.chat-run{margin-top:6px;font-size:12px;color:var(--sub);display:flex;align-items:center;gap:6px}
.chat-run .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse 1s infinite alternate}
@keyframes pulse{from{opacity:.25}to{opacity:1}}
.chat-in{position:sticky;bottom:10px;display:flex;gap:8px;align-items:flex-end;background:#fff;border:1px solid var(--line);border-radius:16px;padding:8px;box-shadow:0 4px 18px rgba(20,30,60,.08)}
.chat-in textarea{flex:1;border:0;outline:0;resize:none;font:inherit;font-size:15px;padding:7px 4px;min-height:36px;max-height:180px;background:transparent}
.chat-in .clip{cursor:pointer;font-size:20px;padding:5px 4px}.chat-in .clip input{display:none}
@media (max-width: 760px){
 .msg{max-width:94%}
 .chat-in{bottom:calc(70px + env(safe-area-inset-bottom))}
 .chat-in textarea{font-size:16px}
}
/* ---------- 🔐 로그인 ---------- */
.login-body{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{width:min(92vw,400px);background:#fff;border:1px solid var(--line);border-radius:22px;padding:30px 24px;box-shadow:0 10px 40px rgba(20,30,60,.10)}
.login-card h1{text-align:center;margin:0 0 4px;font-size:24px}.login-logo{width:64px;height:64px;border-radius:16px;display:block;margin:0 auto 12px}
.login-card input{width:100%;font-size:17px;padding:13px 14px;border-radius:12px;margin:6px 0 10px}
.btn.wide{display:block;width:100%;text-align:center;padding:13px;font-size:15px;border-radius:12px;margin:8px 0}
