:root{--bg:#f5f7fb;--panel:#fff;--text:#172033;--muted:#687386;--line:#dfe4ec;--primary:#2156d9;--primary-dark:#1743b1;--danger:#c93636;--shadow:0 8px 28px rgba(25,39,70,.08);--radius:14px}*{box-sizing:border-box}html{font-family:Inter,Pretendard,"Noto Sans KR",system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}body{margin:0;min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.02em}.brand-logo{height:32px;width:auto;display:block;flex:0 0 auto}.brand-logo.auth{height:58px;width:auto}.nav-links{display:flex;gap:6px;margin-left:42px}.nav-links a{padding:10px 13px;border-radius:9px;color:var(--muted);font-weight:700}.nav-links a.active,.nav-links a:hover{background:#eef3ff;color:var(--primary)}.user-menu{margin-left:auto;display:flex;gap:16px;align-items:center;font-size:14px}.user-menu>a:first-child{font-weight:700}.logout{color:var(--muted)}.container{max-width:1280px;margin:0 auto;padding:30px 26px 60px}.auth-container{max-width:none;min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#edf3ff,#f8f9fc 55%,#eef7f6)}.auth-card{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:34px;box-shadow:var(--shadow)}.auth-card.wide{width:min(520px,100%)}.auth-logo{text-align:center;display:flex;align-items:center;justify-content:center;gap:12px}.auth-logo h1{font-size:24px;margin:0}.auth-note{text-align:center;color:var(--muted);margin:10px 0 24px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.page-heading h1{font-size:27px;margin:0 0 6px}.page-heading p{color:var(--muted);margin:0}.heading-actions{display:flex;gap:8px}.summary-grid{display:grid;gap:14px;margin-bottom:20px}.summary-grid.three{grid-template-columns:repeat(3,1fr)}.summary-grid.two{grid-template-columns:repeat(2,1fr)}.summary-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:0 3px 14px rgba(25,39,70,.04)}.summary-card span{display:block;color:var(--muted);font-size:13px;margin-bottom:8px}.summary-card strong{font-size:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:9px;padding:10px 15px;font-weight:800;cursor:pointer;white-space:nowrap}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-dark)}.btn.secondary{background:#26334d;color:#fff}.btn.ghost{background:#fff;border-color:var(--line);color:#465166}.btn.danger{background:#fff0f0;color:var(--danger);border-color:#f2caca}.btn.small{padding:7px 11px;font-size:13px}.btn.full{width:100%}.filter-bar,.forecast-controls{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:13px;display:flex;gap:9px;align-items:center;margin-bottom:18px}.filter-bar input{min-width:240px;flex:1}.filter-bar input,.filter-bar select,.stack-form input,.form-panel input,.form-panel select,.form-panel textarea{border:1px solid #cfd6e2;border-radius:9px;padding:11px 12px;background:#fff;color:var(--text);width:100%;outline:none}.filter-bar input:focus,.filter-bar select:focus,.stack-form input:focus,.form-panel input:focus,.form-panel select:focus,.form-panel textarea:focus{border-color:#7899ef;box-shadow:0 0 0 3px #e9efff}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 3px 14px rgba(25,39,70,.04)}.data-table{border-collapse:collapse;width:100%;min-width:920px}.data-table th,.data-table td{padding:14px 15px;border-bottom:1px solid #edf0f5;text-align:left;vertical-align:middle}.data-table th{font-size:12px;color:var(--muted);letter-spacing:.02em;background:#fafbfc}.data-table tr:last-child td{border-bottom:0}.data-table tr.clickable:hover{background:#f7f9ff;cursor:pointer}.data-table td strong{display:block}.data-table td small{display:block;color:var(--muted);margin-top:4px}.right{text-align:right!important}.center{text-align:center!important}.nowrap{white-space:nowrap}.stage,.status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:12px;font-weight:800;background:#edf1f7;color:#536177;white-space:nowrap}.stage-confirmed,.status.on{background:#e7f7ee;color:#16824b}.stage-lost,.status.off{background:#fbeaea;color:#b33030}.stage-contract_pending{background:#fff4d8;color:#9c6b00}.stage-negotiation{background:#eeeaff;color:#6146b6}.stage-proposal{background:#e9f3ff;color:#22659f}.stage-hold{background:#f1f1f1;color:#666}.form-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.form-panel.narrow{max-width:640px}.form-grid{display:grid;gap:18px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.one{grid-template-columns:1fr}.form-grid label,.stack-form label{display:flex;flex-direction:column;gap:7px;font-weight:750;font-size:14px}.form-grid label em{font-style:normal;color:var(--primary);font-size:12px}.span-2{grid-column:span 2}.form-panel textarea{resize:vertical;line-height:1.55}.input-suffix{display:flex}.input-suffix input{border-radius:9px 0 0 9px}.input-suffix span{display:grid;place-items:center;padding:0 14px;background:#f2f4f8;border:1px solid #cfd6e2;border-left:0;border-radius:0 9px 9px 0;color:var(--muted);font-weight:700}.form-actions{display:flex;gap:9px;align-items:center;margin-top:24px;padding-top:20px;border-top:1px solid #edf0f5}.push-right{margin-left:auto}.stack-form{display:flex;flex-direction:column;gap:16px}.check-row{flex-direction:row!important;align-items:center}.check-row input{width:auto!important}.flash{padding:12px 14px;border-radius:10px;margin-bottom:14px;font-weight:700}.flash.success{background:#e9f8ef;color:#197947}.flash.error,.form-errors{background:#fff0f0;color:#a42626;border:1px solid #f2cccc;padding:12px 14px;border-radius:10px;margin-bottom:14px}.form-errors ul{margin:7px 0 0;padding-left:20px}.empty-state{background:#fff;border:1px dashed #cfd6e2;border-radius:var(--radius);padding:50px;text-align:center;color:var(--muted)}.empty-state strong{color:var(--text);font-size:18px}.segmented{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px}.segmented a{padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-weight:750;font-size:14px}.segmented a.active{background:var(--primary);border-color:var(--primary);color:#fff}.forecast-controls{justify-content:center;padding:8px;background:transparent;border:0}.year-select{display:flex;align-items:center;gap:15px}.year-select strong{font-size:23px}.month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.month-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.month-card summary{list-style:none;cursor:pointer;padding:18px;display:flex;flex-direction:column;gap:6px}.month-card summary::-webkit-details-marker{display:none}.month-card summary:hover{background:#f8faff}.month-card .month-name{font-size:14px;color:var(--muted);font-weight:800}.month-card summary strong{font-size:23px}.month-card summary small{color:var(--muted)}.month-card[data-empty="1"]{opacity:.65}.month-detail{border-top:1px solid var(--line);padding:8px}.month-detail>a{display:flex;justify-content:space-between;gap:12px;padding:10px;border-radius:9px}.month-detail>a:hover{background:#f5f8ff}.month-detail strong,.month-detail small{display:block}.month-detail small{color:var(--muted);margin-top:3px;font-size:12px}.month-detail.empty{color:var(--muted);padding:16px}.month-card.unknown{margin-top:14px}.status{margin-right:3px}.mobile-only{display:none}.card-list{display:flex;flex-direction:column;gap:11px}.op-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:15px}.op-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.op-card-head strong,.op-card-head small{display:block}.op-card-head small{color:var(--muted);margin-top:5px}.op-metrics{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.op-metrics span{background:#f2f5fa;padding:6px 8px;border-radius:7px;font-size:13px;font-weight:750}.op-foot{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;border-top:1px solid #edf0f5;padding-top:10px}@media(max-width:900px){.topbar{padding:0 16px}.nav-links{margin-left:22px}.container{padding:22px 16px 50px}.filter-bar{flex-wrap:wrap}.filter-bar input{min-width:100%;flex-basis:100%}.month-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.topbar{height:auto;min-height:60px;flex-wrap:wrap;padding:10px 13px}.brand span:last-child{display:inline}.nav-links{order:3;width:100%;margin:8px 0 0;justify-content:space-around;border-top:1px solid var(--line);padding-top:7px}.nav-links a{padding:7px 10px;font-size:13px}.user-menu{font-size:12px}.container{padding:18px 12px 44px}.page-heading{align-items:center}.page-heading h1{font-size:22px}.page-heading p{font-size:13px}.summary-grid.three,.summary-grid.two{grid-template-columns:1fr 1fr}.summary-grid.three .summary-card:first-child{grid-column:span 2}.summary-card{padding:14px}.summary-card strong{font-size:19px}.desktop-only{display:none!important}.mobile-only{display:flex}.filter-bar select{flex:1;min-width:140px}.form-panel{padding:16px}.form-grid.two{grid-template-columns:1fr}.span-2{grid-column:span 1}.form-actions{flex-wrap:wrap}.push-right{margin-left:0}.month-grid{grid-template-columns:1fr}.auth-card{padding:25px 20px}.btn{padding:10px 13px}.segmented{gap:5px}.segmented a{padding:8px 10px;font-size:12px}}