:root{--navy:#0b2545;--navy-2:#13315c;--navy-3:#1d4270;--teal:#0e8c8c;--teal-soft:#e3f3f3;--gold:#e0a526;--gold-soft:#fdf3dc;--red:#c8423b;--red-soft:#fbe9e7;--green:#2f8a4c;--green-soft:#e5f4ea;--blue:#2f6db5;--blue-soft:#e6eef9;--ink:#1b2430;--ink-2:#4a5566;--ink-3:#7b8696;--line:#d9dee6;--line-2:#e9edf2;--bg:#f3f5f8;--card:#fff;--radius:8px;--font:"Pretendard", "Noto Sans KR", "Malgun Gothic", "Apple SD Gothic Neo", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:14px}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}h3{color:var(--navy);margin:0 0 12px;font-size:15px}code{background:var(--line-2);border-radius:4px;padding:1px 5px;font-size:12px}pre.note{white-space:pre-wrap;font-family:var(--font);border:1px solid var(--line-2);background:#fafbfc;border-radius:6px;margin:0 0 12px;padding:12px}.muted{color:var(--ink-3)}.small{font-size:12px}.num{text-align:right;font-variant-numeric:tabular-nums}.boot{height:100%;color:var(--ink-3);place-items:center;display:grid}.shell{height:100%;display:flex}.side{background:var(--navy);color:#c9d4e3;flex-direction:column;flex:none;width:220px;display:flex;overflow-y:auto}.brand{align-items:center;gap:10px;padding:18px 16px 14px;display:flex}.brand-mark{background:linear-gradient(135deg, var(--teal), #0a6c6c);color:#fff;width:34px;height:34px;box-shadow:inset 0 -3px 0 var(--gold);border-radius:8px;place-items:center;font-size:18px;font-weight:800;display:grid}.brand-name{color:#fff;letter-spacing:.3px;font-weight:800}.brand-sub{color:#8ea2bd;font-size:11px}.nav-group{padding:6px 8px}.nav-title{color:#7f93b0;letter-spacing:.5px;padding:8px 10px 4px;font-size:11px;font-weight:700}.nav-link{color:#d5deea;border-radius:6px;justify-content:space-between;align-items:center;padding:7px 10px;font-size:13.5px;display:flex}.nav-link:hover{background:var(--navy-2);text-decoration:none}.nav-link.active{background:var(--teal);color:#fff;font-weight:700}.nav-badge{background:var(--gold);color:var(--navy);border-radius:10px;padding:0 7px;font-size:11px;font-weight:800}.side-foot{border-top:1px solid var(--navy-3);margin-top:auto;padding:14px 16px}.me-name{color:#fff;font-weight:700}.me-name small{color:#9fb1c9;margin-left:4px;font-weight:400}.me-sub{color:#8ea2bd;margin:2px 0 8px;font-size:12px}.me-actions{gap:12px;font-size:12px;display:flex}.me-actions a,.linkish{color:#b9c8db;cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-size:12px}.main{flex:1;min-width:0;overflow-y:auto}.page{max-width:1800px;padding:18px 24px 40px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px;display:flex}.page-head h1{color:var(--navy);margin:0;font-size:21px}.page-sub{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;font-size:13px;display:flex}.page-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;padding:16px}.card.narrow{max-width:460px}.two-col{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:14px;display:grid}.two-col>.card{margin-bottom:0}.card.two-col{display:grid}.stack>*+*{margin-top:8px}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rules{color:var(--ink-3);margin:12px 0 0;padding-left:18px;font-size:12px}.btn{border:1px solid var(--line);height:32px;color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap;background:#fff;border-radius:6px;align-items:center;gap:4px;padding:0 12px;font-size:13px;display:inline-flex}.btn:hover{border-color:var(--teal);color:var(--teal)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:700}.btn-primary:hover{color:#fff;background:#0b7676}.btn-danger{background:var(--red);border-color:var(--red);color:#fff;font-weight:700}.btn-danger:hover{color:#fff;background:#a9352f}.btn-danger-ghost{color:var(--red);border-color:#efc4c0}.btn-danger-ghost:hover{background:var(--red-soft);color:var(--red);border-color:var(--red)}.btn-ghost{background:0 0;border-color:#0000}.btn-excel{color:#1e6e3f;border-color:#b9dcc6}.btn-excel:hover{color:#1e6e3f;background:#eaf6ee;border-color:#1e6e3f}.btn-sm{height:27px;padding:0 9px;font-size:12px}.btn-block{justify-content:center;width:100%;height:40px}.icon-btn{cursor:pointer;width:26px;height:26px;color:var(--ink-3);background:0 0;border:1px solid #0000;border-radius:5px;font-size:16px;line-height:1}.icon-btn:hover{background:var(--line-2);color:var(--ink)}.input{border:1px solid var(--line);height:32px;font:inherit;color:var(--ink);background:#fff;border-radius:6px;width:100%;min-width:0;padding:0 9px;font-size:13px}select.input{width:auto;padding-right:26px}.form-field select.input{width:100%}textarea.input{resize:vertical;height:auto;padding:8px 9px;line-height:1.5}.input:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px #0e8c8c26}.input:disabled{color:var(--ink-2);background:#f6f7f9}.input-sm{height:27px;font-size:12px}.input.num{text-align:right}.check{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}.check input{width:15px;height:15px;accent-color:var(--teal)}.form-grid{gap:12px 14px;display:grid}.form-field{flex-direction:column;gap:4px;min-width:0;display:flex}.form-label{color:var(--ink-2);font-size:12px;font-weight:700}.form-label em{color:var(--red);margin-left:2px;font-style:normal}.form-help{color:var(--ink-3);font-size:11px}.alert{border:1px solid;border-radius:6px;margin-bottom:12px;padding:10px 12px;font-size:13px}.alert-info{background:var(--blue-soft);color:#234f84;border-color:#c6d7ef}.alert-ok{background:var(--green-soft);color:#236b3a;border-color:#bfe0c9}.alert-warn{background:var(--gold-soft);color:#7a5a0f;border-color:#f0d79b}.alert-error{background:var(--red-soft);color:#9a2f29;border-color:#f0c3be}.chip{white-space:nowrap;border-radius:10px;padding:1px 8px;font-size:11.5px;font-weight:700;line-height:18px;display:inline-block}.chip-teal{background:var(--teal-soft);color:#0a6c6c}.chip-green{background:var(--green-soft);color:var(--green)}.chip-gold{background:var(--gold-soft);color:#8d6510}.chip-red{background:var(--red-soft);color:var(--red)}.chip-blue{background:var(--blue-soft);color:var(--blue)}.chip-gray{color:var(--ink-2);background:#eef0f3}.tabs{border-bottom:1px solid var(--line);gap:2px;margin-bottom:12px;display:flex;overflow-x:auto}.tab{font:inherit;color:var(--ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 14px;font-size:13.5px}.tab:hover{color:var(--navy)}.tab.active{color:var(--navy);border-bottom-color:var(--teal);font-weight:800}.tab-badge{background:var(--gold);color:var(--navy);border-radius:9px;margin-left:5px;padding:0 6px;font-size:11px;font-weight:800}.stat-row{grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px;margin-bottom:14px;display:grid}.stat{border:1px solid var(--line);border-left:4px solid var(--navy-3);border-radius:var(--radius);background:#fff;padding:12px 14px}.stat-label{color:var(--ink-3);font-size:12px;font-weight:700}.stat-value{color:var(--navy);font-variant-numeric:tabular-nums;margin-top:4px;font-size:21px;font-weight:800}.stat-value a{color:inherit}.stat-sub{color:var(--ink-3);margin-top:2px;font-size:12px}.stat-teal{border-left-color:var(--teal)}.stat-gold,.stat-warn{border-left-color:var(--gold)}.stat-red,.stat-bad{border-left-color:var(--red)}.stat-red .stat-value,.stat-bad .stat-value{color:var(--red)}.stat-green,.stat-good{border-left-color:var(--green)}.grid-wrap{border:1px solid var(--line);border-radius:var(--radius);background:#fff;flex-direction:column;display:flex;overflow:hidden}.grid-toolbar{border-bottom:1px solid var(--line);background:#fbfcfd;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.grid-search{border:1px solid var(--line);width:240px;height:30px;font:inherit;border-radius:6px;padding:0 9px;font-size:13px}.grid-search:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px #0e8c8c26}.grid-count{color:var(--ink-3);white-space:nowrap;font-size:12px}.grid-toolbar-right{align-items:center;gap:6px;margin-left:auto;display:flex}.grid-hint{color:var(--ink-3);border-top:1px solid var(--line-2);background:#fbfcfd;padding:4px 10px;font-size:11px}.cell-num{text-align:right;font-variant-numeric:tabular-nums}.cell-date{font-variant-numeric:tabular-nums;color:var(--ink-2)}.cell-center{text-align:center}.cell-link{color:var(--teal);font-weight:600}.ag-row.row-sample{color:var(--ink-3);font-style:italic}.ag-row.row-dim{color:#a3acb9}.ag-row.row-dim .cell-link{color:#87b8b8}.ag-row.row-warn{background:#fff8e6!important}.ag-row-pinned{font-weight:800;background:#f1f4f8!important}.table{border-collapse:collapse;width:100%;font-size:13px}.table th,.table td{border:1px solid var(--line-2);text-align:left;vertical-align:middle;padding:6px 8px}.table th{color:var(--ink-2);background:#f4f6f9;font-size:12px;font-weight:700}.table td.num,.table th.num{text-align:right}.table tfoot td{background:#f1f4f8;font-weight:800}.table.kv th{width:110px}.edit-table td{padding:3px 4px}.edit-table .input{border-color:#0000}.edit-table .input:hover:not(:disabled){border-color:var(--line)}.mini-table{border-collapse:collapse;width:100%}.mini-table td{border-bottom:1px solid var(--line-2);padding:8px 4px}.mini-table tr.clickable{cursor:pointer}.mini-table tr.clickable:hover{background:#f7f9fb}.diff-old{color:var(--red);word-break:break-all;-webkit-text-decoration:line-through #c8423b59;text-decoration:line-through #c8423b59}.diff-new{color:var(--green);word-break:break-all}.lines{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.lines-tools{border-bottom:1px solid var(--line);background:#fbfcfd;flex-wrap:wrap;align-items:center;gap:8px;padding:8px;display:flex}.lines-total{border-top:1px solid var(--line);font-variant-numeric:tabular-nums;background:#f6f8fa;justify-content:flex-end;gap:20px;padding:10px 12px;display:flex}.lines-grand{color:var(--navy);font-weight:800}.paste-area,.paste-inline{width:100%;min-height:140px;font-family:ui-monospace,Consolas,monospace;font-size:12px}.map-row{gap:6px;padding:8px 0;display:flex;overflow-x:auto}.map-cell{min-width:120px}.approver-picker{border:1px solid var(--line);border-radius:var(--radius);padding:10px}.approver-line{flex-wrap:wrap;align-items:center;gap:6px;min-height:32px;margin-bottom:10px;display:flex}.approver-step{background:var(--teal-soft);border:1px solid #bfe2e2;border-radius:6px;align-items:center;gap:4px;padding:3px 4px 3px 8px;font-size:13px;display:inline-flex}.approver-step .mini,.mini{cursor:pointer;color:var(--ink-3);background:0 0;border:0;padding:0 3px;font-size:12px}.approver-step .mini:hover{color:var(--ink)}.arrow{color:var(--ink-3)}.sign-row{gap:0;display:flex;overflow-x:auto}.sign{border:1px solid var(--line);text-align:center;background:#fff;flex:none;width:130px;margin-left:-1px;padding:8px 6px}.sign:first-child{border-radius:6px 0 0 6px;margin-left:0}.sign:last-child{border-radius:0 6px 6px 0}.sign-role{color:var(--ink-3);border-bottom:1px solid var(--line-2);margin-bottom:6px;padding-bottom:4px;font-size:11px}.sign-name{color:var(--navy);font-weight:800}.sign-date{color:var(--ink-3);margin-top:3px;font-size:11px}.sign-comment{color:var(--ink-2);margin-top:4px;font-size:11px}.sign.ok{background:var(--green-soft)}.sign.ok .sign-date{color:var(--green);font-weight:700}.sign.no{background:var(--red-soft)}.sign.no .sign-date{color:var(--red);font-weight:700}.sign.now{background:var(--gold-soft);box-shadow:inset 0 -3px 0 var(--gold)}.hook{border:1px solid var(--line-2);background:#fbfcfd;border-radius:6px;margin-bottom:10px;padding:10px}.hook-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.hook-events{flex-wrap:wrap;gap:14px;margin-top:8px;display:flex}.temp-pw{letter-spacing:1px;background:var(--gold-soft);border:1px dashed var(--gold);text-align:center;-webkit-user-select:all;user-select:all;border-radius:6px;margin:10px 0;padding:12px;font-family:ui-monospace,Consolas,monospace;font-size:22px;font-weight:800}.ss{position:relative}.ss-list{z-index:60;border:1px solid var(--line);background:#fff;border-radius:6px;max-height:280px;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0b254526}.ss-item{cursor:pointer;padding:6px 10px;font-size:13px}.ss-item.hi,.ss-item:hover{background:var(--teal-soft)}.ss-sub{color:var(--ink-3);font-size:11px}.ss-empty{color:var(--ink-3);cursor:default}.modal-back{z-index:100;background:#0b254573;grid-template-columns:minmax(0,1fr);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:10px;flex-direction:column;width:min(560px,100%);max-height:calc(100vh - 40px);display:flex;box-shadow:0 20px 50px #00000040}.modal-wide{width:min(880px,100%)}.modal-xl{width:min(1200px,100%)}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-head h3{color:var(--navy);margin:0;font-size:16px}.modal-body{min-width:0;padding:16px 18px;overflow-y:auto}.modal-foot{border-top:1px solid var(--line);background:#fafbfc;border-radius:0 0 10px 10px;justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.quick-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:14px;display:grid}.quick{text-align:left;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;font:inherit;border-top:3px solid var(--teal);background:#fff;padding:12px 14px}.quick:hover{border-color:var(--teal);box-shadow:0 4px 12px #0e8c8c1f}.quick b{color:var(--navy);font-size:14px;display:block}.quick span{color:var(--ink-3);font-size:12px}.bar-col{height:100%;color:var(--ink-3);flex-direction:column;flex:1;align-items:center;gap:4px;font-size:11px;display:flex}.bar-sales{background:var(--navy-3)}.bar-coll{background:var(--teal)}.legend{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;font-size:12px;display:flex}.lg{border-radius:2px;width:10px;height:10px;display:inline-block}.lg-sales{background:var(--navy-3)}.lg-coll{background:var(--teal);margin-left:8px}.member-list{margin:0;padding-left:18px}.login-wrap{background:radial-gradient(1200px 600px at 20% 0%, #1d4270 0%, var(--navy) 55%, #071a32 100%);place-items:center;min-height:100%;padding:20px;display:grid}.login-card{background:#fff;border-radius:12px;flex-direction:column;gap:14px;width:min(400px,100%);padding:28px;display:flex;box-shadow:0 20px 60px #00000059}.login-brand{padding:0 0 6px}.login-brand .brand-name{color:var(--navy);font-size:18px}.login-brand .brand-sub{color:var(--ink-3)}@media (width<=1100px){.two-col,.bom-layout{grid-template-columns:1fr}.side{width:200px}}.topbar{z-index:70;background:var(--navy);color:#fff;align-items:center;gap:10px;height:52px;padding:0 10px;display:flex;position:sticky;top:0}.topbar-btn{color:#fff;cursor:pointer;background:0 0;border:0;place-items:center;width:38px;height:38px;display:grid;position:relative}.topbar-btn .bell-count{top:2px;right:0}.topbar-brand{letter-spacing:.3px;flex:1;align-items:center;gap:8px;font-weight:800;display:flex}.brand-mark.sm{border-radius:6px;width:26px;height:26px;font-size:14px}.drawer-back{z-index:80;background:#0b254573;position:fixed;inset:0}.shell.mobile{flex-direction:column;height:auto;min-height:100%}.shell.mobile .main{overflow:visible}.side.drawer{z-index:85;width:270px;transition:transform .18s;position:fixed;top:0;bottom:0;left:0;transform:translate(-105%);box-shadow:4px 0 24px #0000004d}.side.drawer.open{transform:none}.side.drawer .nav-link{padding:10px 12px;font-size:15px}@media (width<=820px){body{font-size:15px}.page{padding:12px 12px 32px}.page-head{flex-direction:column;align-items:stretch;gap:8px}.page-head h1{font-size:19px}.page-actions{gap:6px}.page-actions .btn{flex:auto;justify-content:center;height:38px}.stat-row{grid-template-columns:1fr 1fr;gap:8px}.stat{padding:10px}.stat-value{font-size:17px}.card{padding:12px;overflow-x:auto}.form-grid{grid-template-columns:1fr!important}.form-grid>*{grid-column:auto!important}.input,select.input{height:38px;font-size:15px}.grid-toolbar{gap:6px}.grid-search{order:-1;width:100%}.grid-toolbar-right{justify-content:flex-end;width:100%;margin-left:0}.modal-back{place-items:stretch stretch;padding:0}.modal,.modal-wide,.modal-xl{border-radius:0;width:100%;height:100%;max-height:100vh}.modal-foot{border-radius:0}.modal-foot .btn{height:40px}.tabs{margin-left:-12px;margin-right:-12px;padding:0 6px}.quick-grid{grid-template-columns:1fr 1fr}.bell-panel,.gsearch-list{width:auto;max-height:75vh;position:fixed;top:56px;left:8px;right:8px}.sign{width:110px}.inline-form,.hook-row{flex-direction:column;align-items:stretch}.mlist{flex-direction:column;gap:8px;display:flex}}.mcard{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;padding:12px;text-decoration:none;display:block}.mcard:hover{border-color:var(--teal);text-decoration:none}.mcard-top{color:var(--ink-3);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.mcard-title{margin:4px 0;font-size:15px;font-weight:700}.mcard-sub{color:var(--ink-2);justify-content:space-between;font-size:13px;display:flex}@media print{.side,.page-actions,.grid-toolbar{display:none!important}.main{overflow:visible}}.attach{border:1px dashed var(--line);border-radius:var(--radius);background:#fcfdfe;padding:10px 12px}.attach.over{border-color:var(--teal);background:var(--teal-soft)}.attach.compact{padding:8px 10px}.attach-head{align-items:center;gap:8px;display:flex}.attach-list{margin:8px 0 0;padding:0;list-style:none}.attach-list li{border-top:1px solid var(--line-2);align-items:center;gap:10px;padding:5px 0;font-size:13px;display:flex}.attach-list li a:first-of-type{text-overflow:ellipsis;white-space:nowrap;max-width:46%;font-weight:600;overflow:hidden}.attach-list li .muted{flex:1}.attach-icon{color:#fff;background:var(--navy-3);text-align:center;border-radius:4px;min-width:32px;padding:2px 5px;font-size:10px;font-weight:800}.attach-empty{padding-top:6px}.attach-preview{border:1px solid var(--line-2);background:#fff;border-radius:6px;max-width:160px;max-height:90px;margin-top:8px;display:block}.attach-group{gap:10px;margin-top:14px;display:grid}.line-form .form-label{margin-bottom:6px;display:block}.cc-picker{border:1px solid var(--line);border-radius:var(--radius);padding:10px}.cc-chips{flex-wrap:wrap;align-items:center;gap:6px;min-height:24px;margin-bottom:8px;display:flex}.cc-chip{border:1px solid var(--line);background:#eef1f5;border-radius:14px;align-items:center;gap:4px;padding:2px 4px 2px 10px;font-size:13px;display:inline-flex}.cc-line{margin:-6px 0 12px}.seg{gap:4px;display:inline-flex}.side-tools{align-items:center;gap:6px;padding:0 12px 8px;display:flex}.gsearch{flex:1;min-width:0;position:relative}.gsearch-input{border:1px solid var(--navy-3);background:var(--navy-2);color:#fff;width:100%;height:30px;font:inherit;border-radius:6px;padding:0 9px;font-size:12.5px}.gsearch-input::placeholder{color:#8ea2bd}.gsearch-input:focus{border-color:var(--teal);outline:none}.gsearch-list{z-index:90;width:420px;max-height:70vh;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:8px;position:fixed;top:112px;left:12px;overflow-y:auto;box-shadow:0 12px 32px #0b254540}.gsearch-item{text-align:left;cursor:pointer;width:100%;font:inherit;border:0;border-bottom:1px solid var(--line-2);background:0 0;gap:10px;padding:8px 12px;font-size:13px;display:flex}.gsearch-item.hi{background:var(--teal-soft)}.gsearch-type{width:56px;color:var(--teal);flex:none;padding-top:1px;font-size:11px;font-weight:800}.gsearch-main{min-width:0}.gsearch-main small{color:var(--ink-3);font-size:11.5px;display:block}.gsearch-empty{color:var(--ink-3);padding:14px;font-size:13px}.bell{position:relative}.bell-btn{border:1px solid var(--navy-3);background:var(--navy-2);color:#b9c8db;cursor:pointer;border-radius:6px;place-items:center;width:32px;height:30px;display:grid;position:relative}.bell-btn.has{color:var(--gold);border-color:var(--gold)}.bell-count{background:var(--gold);color:var(--navy);border-radius:9px;padding:0 5px;font-size:10.5px;font-weight:800;line-height:16px;position:absolute;top:-6px;right:-7px}.bell-panel{z-index:90;width:380px;max-height:70vh;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:8px;position:fixed;top:112px;left:12px;overflow-y:auto;box-shadow:0 12px 32px #0b254540}.bell-head{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;padding:10px 12px;display:flex;position:sticky;top:0}.linkish.dark{color:var(--teal);font-size:12px}.bell-item{text-align:left;border:0;border-bottom:1px solid var(--line-2);cursor:pointer;width:100%;font:inherit;background:0 0;padding:9px 12px;display:block}.bell-item:hover{background:#f6f8fa}.bell-item.unread{box-shadow:inset 3px 0 0 var(--gold);background:#fffaf0}.bell-title{font-size:13px;font-weight:700;display:block}.bell-body{color:var(--ink-2);white-space:pre-line;margin:2px 0;font-size:12px;display:block}.bell-time{color:var(--ink-3);font-size:11px;display:block}.bell-empty{color:var(--ink-3);padding:16px 12px;font-size:13px}.print-root{background:#e9ecf1;min-height:100%;padding-bottom:40px}.print-toolbar{border-bottom:1px solid var(--line);z-index:5;background:#fff;align-items:center;gap:10px;padding:10px 16px;display:flex;position:sticky;top:0}.print-toolbar.warn{background:var(--gold-soft);position:static}.sheet{color:#111;background:#fff;width:210mm;min-height:297mm;margin:16px auto;padding:14mm 12mm;font-size:12px;line-height:1.45;box-shadow:0 2px 12px #0000001f}.sheet-title{text-align:center;letter-spacing:6px;color:#111;margin:0 0 14px;font-size:26px}.sheet-title small{letter-spacing:0;font-size:12px;font-weight:400}.sheet-title.left{text-align:left;margin:8px 0 0}.title-row{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.head-grid{grid-template-columns:1fr 1.15fr;gap:10px;margin-bottom:10px;display:grid}.ptable{border-collapse:collapse;width:100%;margin-bottom:8px}.ptable th,.ptable td{vertical-align:middle;border:1px solid #555;padding:4px 6px}.ptable th{white-space:nowrap;text-align:center;background:#f1f3f6;font-weight:700}.ptable td.r{text-align:right;font-variant-numeric:tabular-nums}.ptable td.c{text-align:center}.ptable td.big{font-size:15px;font-weight:700}.ptable .vlabel{writing-mode:vertical-rl;letter-spacing:4px;width:22px}.ptable.meta th{width:22%}.ptable.items tbody tr.pad td{height:22px}.ptable.items tfoot td{background:#fafbfc;font-weight:700}.ptable.items tfoot tr.grand td{background:#eef1f5;font-size:13px}.party td{font-size:11.5px}.seal-cell{white-space:nowrap;min-width:84px;position:relative}.seal-cell .in{color:#888;margin-left:4px}.seal-cell .seal{object-fit:contain;opacity:.9;mix-blend-mode:multiply;width:42px;height:42px;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.lead-line{margin:6px 0}.amount-box{border:2px solid #333;margin:6px 0 10px;padding:8px 12px;font-size:13px}.amount-box b{margin:0 6px;font-size:15px}.amount-box span{color:#555}.note-box{border:1px solid #555;margin-top:6px;padding:6px 8px}.pre{white-space:pre-wrap}.body-box{border:1px solid #555;min-height:70mm;margin-bottom:8px;padding:10px}.signbox{width:auto;margin:0}.signbox th,.signbox td{text-align:center;min-width:64px}.stamp-cell{height:46px}.stamp{color:#c8423b;border:2px solid #c8423b;border-radius:50%;min-width:40px;padding:6px 4px;font-size:11px;font-weight:800;display:inline-block}.stamp.no{color:#555;border-color:#555}.sname{font-weight:700}.sname.dim{color:#999;font-weight:400}.sdate{color:#333;font-size:10.5px}.draft-mark{color:#c8423b;text-align:center;border:1px dashed #c8423b;margin-top:10px;padding:6px;font-weight:700}.muted-print{color:#777;margin-top:8px}.sheet-logo{object-fit:contain;max-width:180px;height:34px;margin-bottom:4px;display:block}.head-grid.even{grid-template-columns:1fr 1fr}.end-mark{color:#444;letter-spacing:2px;font-size:11px}.terms{margin:4px 0 0;padding-left:22px}.terms li{margin:1px 0}.closing{margin:14px 0 0;font-weight:700}.statement-two .statement .sheet-title{margin-bottom:6px;font-size:20px}.statement.compact{font-size:11px}.statement.compact .ptable th,.statement.compact .ptable td{padding:2px 5px}.statement.compact .ptable.items tbody tr.pad td{height:18px}.party.compact td{font-size:11px}.cut-line{color:#999;text-align:center;white-space:nowrap;margin:6px 0 8px;font-size:10px;overflow:hidden}.ptable.receipt .sign-cells td{height:30px}.muted-inline{color:#555;font-weight:400}.page-break{break-before:page}.stamp-cell.skipped{padding:0;position:relative}.stamp-cell.skipped .skip-slash{width:100%;height:100%;display:block;position:absolute;inset:0}.urgent-mark{vertical-align:middle;color:#c8423b;letter-spacing:2px;border:2px solid #c8423b;border-radius:3px;margin-left:10px;padding:1px 6px;font-size:13px;display:inline-block}.ptable.opinions{margin-top:10px}.sheet-title.boxed{border:2px solid #333;padding:10px 26px;font-size:24px}.ptable.form th{width:16%}.ptable.form td{height:30px}.ptable.form td.tall{vertical-align:top;height:120px}.ptable.form .kinds span{white-space:nowrap;margin-right:14px;display:inline-block}.submit-text{text-align:center;margin:26px 0 12px;font-size:13px}.submit-text p{margin:8px 0}.submit-text .applicant{text-align:right;margin-right:30px}.submit-text .in{color:#888;margin-left:6px}.sign.skip{background:repeating-linear-gradient(135deg, transparent 0 6px, var(--line-2) 6px 7px)}.chip-red{margin-right:6px}@page{size:A4;margin:10mm}@media print{.no-print{display:none!important}.print-root{background:#fff;padding:0}.sheet{box-shadow:none;width:auto;min-height:auto;margin:0;padding:0}body{background:#fff}}.bom-layout{grid-template-columns:minmax(0,560px) minmax(0,1fr);align-items:start;gap:14px;display:grid}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.card-head h3{margin:0}.inline-label{color:var(--ink-2);align-items:center;gap:6px;font-size:13px;display:inline-flex}.table tr.tr-short td{background:var(--red-soft)}.table tr.tr-short td b{color:var(--red)}.table tr.tr-dim td{color:var(--ink-3)}.entity-switch{padding:0 14px 10px}.entity-select{color:#fff;background:#ffffff14;border:1px solid #ffffff2e;border-radius:8px;width:100%;height:34px;padding:0 10px;font-size:13px;font-weight:600}.entity-select option{color:#0b2545}.entity-tag{background:var(--teal-50,#e6f6f5);color:var(--teal,#0f8b86);vertical-align:middle;border-radius:10px;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.toolbar-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.toolbar-row .spacer{flex:1}.btn-on{background:var(--navy);color:#fff;border-color:var(--navy)}.ok-text{color:var(--green);font-weight:700}.bad-text{color:var(--red);font-weight:700}.row-muted,.ag-row.row-muted{color:var(--ink-3)}.stat-btn{text-align:left;cursor:pointer;font:inherit;width:100%}.stat-btn:hover{border-color:var(--teal)}.stat-active{border-left-color:var(--teal);box-shadow:0 0 0 2px var(--teal-soft)}.table td.actions{white-space:nowrap;text-align:right}.table td.actions .btn+.btn{margin-left:6px}.table tr.closed td{background:#f8faf9}.je{border:1px solid var(--line);border-radius:var(--radius);background:#fff;margin-bottom:10px;overflow:visible}.je-table td{vertical-align:middle}.je-table .num-text{text-align:right;font-variant-numeric:tabular-nums;padding:0 6px;display:block}.je-table tfoot td{font-variant-numeric:tabular-nums}.fin-card{padding:12px 14px}.fin-title{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.fin-title b{color:var(--navy);font-size:15px}.fin-wrap{overflow-x:auto}.fin-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.fin-table th,.fin-table td{border-bottom:1px solid var(--line-2);white-space:nowrap;padding:5px 10px}.fin-table th{color:var(--ink-2);background:#f4f6f9;font-size:12px;font-weight:700;position:sticky;top:0}.fin-table th small{color:var(--ink-3);font-size:10.5px;font-weight:500;display:block}.fin-table .num{text-align:right;min-width:120px}.fin-table.compact{font-size:12px}.fin-table.compact .num{min-width:76px;padding:5px 6px}.fin-table.compact .fin-label{min-width:130px}.fin-table .fin-label{text-align:left;min-width:240px}.fin-table .fin-code{color:var(--ink-3);margin-left:6px;font-size:11px}.fin-table td.neg{color:var(--red)}.fin-table th.actual,.fin-table td.actual{background:#fbfcfd}.fin-table th.forecast{color:var(--blue);background:#eef5fb}.fin-table td.forecast{background:#f7fafd}.fin-table th.elim,.fin-table td.elim{color:#8a5a00;background:#fdf8ec}.fin-table th.total,.fin-table td.total{background:#f1f4f8;font-weight:700}.fin-table tr.group td{color:var(--navy);font-weight:700}.fin-table tr.head td{color:var(--navy);background:#f7f9fb;padding-top:9px;font-weight:800}.fin-table tr.total td{border-top:1px solid var(--line);font-weight:700}.fin-table tr.grand td{color:var(--navy);border-top:1px solid var(--ink-3);border-bottom:3px double var(--ink-3);background:#f6f8fb;font-weight:800}.fin-table tr.elim td{color:#8a5a00;font-style:italic}.fin-table tr:hover td{background:#f3f8f8}.est-opt .form-grid{margin-top:8px}.unit-input{align-items:center;gap:6px;display:flex}.unit-input i{color:var(--ink-3);white-space:nowrap;font-size:12px;font-style:normal}.assume-table td:first-child{white-space:nowrap;min-width:220px}.assume-table td.num{min-width:130px}.assume-table .input{text-align:right}.bars{align-items:flex-end;gap:6px;height:170px;padding:6px 4px 0;display:flex}.bar-col{flex-direction:column;flex:1;align-items:center;height:100%;display:flex}.bar-col span{color:var(--ink-3);margin-top:4px;font-size:11px}.bar-pair{flex:1;justify-content:center;align-items:flex-end;gap:3px;width:100%;display:flex}.bar{border-radius:3px 3px 0 0;width:40%;max-width:22px;min-height:0}.bar.rev,.sw.rev{background:var(--navy-3)}.bar.op,.sw.op{background:var(--teal)}.bar.op.neg,.sw.neg{background:var(--red)}.legend{color:var(--ink-2);gap:14px;margin-top:8px;font-size:12px;display:flex}.legend .sw{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:5px;display:inline-block}@media (width<=900px){.est-opt .form-grid{grid-template-columns:1fr 1fr!important}.fin-table .fin-label{min-width:170px}}.page>.two-col{margin-bottom:14px}.toolbar-row .input,.inline-form .input,.card-head .input{width:auto}.toolbar-row input[type=date].input,.inline-form input[type=date].input{width:140px}.grid-toolbar-right{flex-wrap:wrap;justify-content:flex-end}.grid-toolbar-right .check,.toolbar-row .check{white-space:nowrap;flex-shrink:0}.grid-toolbar-right select.input{flex-shrink:0;min-width:96px}.grid-toolbar-right input[type=date].input{flex-shrink:0;width:135px}.fin-table td.fin-label,.fin-table th.fin-label{z-index:1;background:#fff;position:sticky;left:0}.fin-table th.fin-label{z-index:2;background:#f4f6f9}.fin-table tr.grand td.fin-label{background:#f6f8fb}.fin-table tr.head td.fin-label{background:#f7f9fb}.shell:not(.mobile) .page-head{z-index:30;background:var(--bg);border-bottom:1px solid #0000;margin:-18px -24px 14px;padding:14px 24px 10px;transition:border-color .15s,box-shadow .15s;position:sticky;top:0}.shell:not(.mobile) .main.scrolled .page-head{border-bottom-color:var(--line);box-shadow:0 4px 12px #0b25450f}.page-head-main{min-width:0}.page-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fav-btn{cursor:pointer;color:#b7c2d0;background:0 0;border:0;border-radius:6px;padding:2px 4px;font-size:19px;line-height:1}.fav-btn:hover{color:var(--gold);background:var(--gold-soft)}.fav-btn.on{color:var(--gold)}.crumbs{color:var(--ink-3);flex-wrap:wrap;gap:0;margin-bottom:3px;font-size:12px;display:flex}.crumbs a{color:var(--ink-2)}.crumb-sep{color:#b7c2d0;margin:0 6px}.crumb-here{color:var(--ink-3)}.gsearch-btn{cursor:pointer;text-align:left;color:#8ea2bd;flex:1;justify-content:space-between;align-items:center;gap:6px;min-width:0;display:flex}.gsearch-btn:hover{border-color:var(--teal);color:#c9d4e3}.gsearch-btn kbd{background:var(--navy-3);color:#b9c8db;border:0}kbd{font:600 10.5px/1 var(--font);border:1px solid var(--line);color:var(--ink-2);white-space:nowrap;background:#f4f6f9;border-radius:4px;padding:3px 5px;display:inline-block}.nav-title{cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;font-family:inherit;display:flex}.nav-title:hover{color:#c9d4e3}.nav-caret{opacity:.7;font-size:9px}.nav-group.closed{padding-bottom:0}.nav-link{position:relative}.nav-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.nav-x{color:#8ea2bd;padding:0 2px;font-size:10px;display:none}.nav-link:hover .nav-x{display:inline}.nav-link.active .nav-x{color:#fff}.cp-back{z-index:120;background:#0b254559;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.cp{background:#fff;border-radius:12px;flex-direction:column;width:min(640px,100vw - 24px);max-height:70vh;display:flex;overflow:hidden;box-shadow:0 24px 60px #0b254559}.cp-head{border-bottom:1px solid var(--line);color:var(--ink-3);align-items:center;gap:10px;padding:12px 14px;display:flex}.cp-input{font:inherit;color:var(--ink);border:0;outline:none;flex:1;min-width:0;font-size:15.5px}.cp-list{padding:4px 0 8px;overflow-y:auto}.cp-group{color:var(--ink-3);letter-spacing:.3px;padding:10px 16px 4px;font-size:11px;font-weight:800}.cp-row{text-align:left;width:100%;font:inherit;cursor:pointer;color:var(--ink);background:0 0;border:0;align-items:center;gap:10px;padding:8px 16px;font-size:14px;display:flex}.cp-row.hi{background:var(--teal-soft)}.cp-tag{color:var(--teal);background:#fff;border:1px solid #bfe3e3;border-radius:10px;flex:none;padding:1px 7px;font-size:11px;font-weight:700}.cp-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.cp-sub{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;max-width:45%;margin-left:auto;font-size:12px;overflow:hidden}.cp-enter{color:var(--teal);margin-left:6px;font-size:12px}.cp-sub+.cp-enter{margin-left:6px}.cp-label+.cp-enter{margin-left:auto}.cp-empty{color:var(--ink-3);padding:22px 16px;font-size:13px}.cp-foot{border-top:1px solid var(--line-2);color:var(--ink-3);background:#fafbfc;flex-wrap:wrap;gap:14px;padding:8px 14px;font-size:11.5px;display:flex}.cp-foot kbd{margin-right:3px}.cp-help{padding:14px 16px 6px}.cp-help-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.toasts{z-index:130;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;background:var(--navy);color:#fff;border-radius:10px;align-items:center;gap:10px;min-width:260px;max-width:min(560px,100vw - 24px);padding:10px 12px 10px 14px;font-size:13.5px;animation:.18s ease-out toast-in;display:flex;box-shadow:0 10px 30px #0b25454d}.toast-icon{background:var(--teal);border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:12px;font-weight:800;display:grid}.toast-error{background:#7d1f1a}.toast-error .toast-icon{background:var(--red)}.toast-warn .toast-icon{background:var(--gold);color:var(--navy)}.toast-info .toast-icon{background:var(--blue)}.toast-text{flex:1}.toast-close{color:#b9c8db;cursor:pointer;background:0 0;border:0;font-size:12px}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.steps{border:1px solid var(--line);border-radius:var(--radius);background:#fff;margin:0 0 14px;padding:0;list-style:none;display:flex;overflow-x:auto}.steps li{color:var(--ink-3);white-space:nowrap;flex:1;align-items:center;gap:7px;min-width:max-content;padding:9px 18px 9px 26px;font-size:13px;display:flex;position:relative}.steps li:first-child{padding-left:14px}.steps li:not(:last-child):after{content:"";border-top:1px solid var(--line);border-right:1px solid var(--line);background:inherit;z-index:1;width:16px;height:16px;position:absolute;top:50%;right:-9px;transform:translateY(-50%)rotate(45deg)}.steps li.done{color:var(--ink-2);background:#f6faf9}.steps li.now{color:#fff;background:var(--teal);font-weight:700}.steps li.now:after{background:var(--teal);border-color:var(--teal)}.steps li.off{color:var(--red);background:var(--red-soft);font-weight:700}.step-dot{border:1px solid;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:11px;font-weight:800;display:grid}.steps li.done .step-dot{background:var(--green);color:#fff;border-color:var(--green)}.steps li.now .step-dot{color:var(--teal);background:#fff;border-color:#fff}.steps-off li:not(.off){opacity:.6}.form-field .input:disabled,.form-field .ss input:disabled{border-color:#0000;border-bottom:1px dashed var(--line);color:var(--ink);-webkit-text-fill-color:var(--ink);opacity:1;cursor:default;background:0 0;border-radius:0;padding-left:1px}.form-field select.input:disabled{appearance:none;background-image:none}.form-field textarea.input:disabled{border:1px solid var(--line-2);background:#fbfcfd;border-radius:6px;padding:8px 10px}.form-field .input:disabled::placeholder{color:#0000;-webkit-text-fill-color:transparent}.form-field .num:disabled{text-align:left}.empty{border:1px dashed var(--line);border-radius:var(--radius);text-align:center;color:var(--ink-2);background:#fbfcfd;padding:22px}.empty-title{color:var(--navy);margin-bottom:4px;font-weight:800}.empty-body{color:var(--ink-3);font-size:13px}.empty-action{margin-top:10px}.home-grid{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:14px;display:grid}.cue-groups{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:14px;display:grid}.cue-group{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:12px 12px 10px}.cue-group h4{color:var(--ink-2);justify-content:space-between;margin:0 0 8px;font-size:12.5px;display:flex}.cue-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.cue{text-align:left;border:1px solid var(--line-2);color:var(--ink);background:#fbfcfd;border-left:4px solid #cfd8e3;border-radius:8px;min-height:66px;padding:9px 10px 8px;display:block}.cue:hover{border-color:var(--teal);background:#fff;text-decoration:none}.cue-n{color:var(--navy);font-variant-numeric:tabular-nums;font-size:22px;font-weight:800;line-height:1.15}.cue-l{color:var(--ink-2);margin-top:2px;font-size:12px}.cue-s{color:var(--ink-3);font-size:11px}.cue.zero{border-left-color:#cfe5d6}.cue.zero .cue-n{color:#9aa8b8}.cue.warn{border-left-color:var(--gold);background:#fffdf6}.cue.bad{border-left-color:var(--red);background:snow}.cue.bad .cue-n{color:var(--red)}.cue.info{border-left-color:var(--teal)}.side-panel{flex-direction:column;gap:14px;display:flex}.side-panel .card{margin-bottom:0}.link-list{margin:0;padding:0;list-style:none}.link-list li{border-bottom:1px solid var(--line-2);align-items:center;gap:8px;padding:6px 2px;font-size:13px;display:flex}.link-list li:last-child{border-bottom:0}.link-list a{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.link-list .tag{color:var(--ink-3);background:#f0f3f7;border-radius:8px;flex:none;padding:1px 6px;font-size:10.5px}.quick-row{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.quick-row .btn{background:#fff}@media (width<=1100px){.home-grid{grid-template-columns:1fr}}@media (width<=820px){.cue-list{grid-template-columns:1fr 1fr}.cue-n{font-size:19px}}.view-pick{align-items:center;gap:4px;display:flex}.view-pick select{max-width:160px}.view-save{align-items:center;gap:4px;display:flex}.view-save .input{width:140px}.wait-long{color:var(--red);font-weight:700}@media (width<=820px){.quick-row{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.quick-row .btn{flex:none}.cp-back{padding-top:8vh}.cp-foot{display:none}.view-pick select{max-width:120px}}.plan-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:14px;margin-bottom:14px;display:grid}.plan-grid>.card{margin-bottom:0}.fin-table th.rate,.fin-table td.rate{color:var(--green);background:#f3faf6;font-weight:700}.fin-table tr.elim td.rate{color:#8a5a00}.plan-bars{border-bottom:1px solid var(--line);align-items:flex-end;gap:18px;height:210px;padding:6px 4px 0;display:flex}.plan-bar-col{flex-direction:column;flex:1;align-items:center;gap:6px;height:100%;display:flex}.plan-bar-col>span{color:var(--ink-2);padding-bottom:4px;font-size:12px}.plan-bar-set{flex:1;justify-content:center;align-items:flex-end;gap:3px;width:100%;display:flex}.plan-bar-set .pb{border-radius:3px 3px 0 0;width:18%;max-width:22px;min-height:1px}.pb.order-plan,.sw.order-plan{background:#c9d6e6}.pb.order-actual,.sw.order-actual{background:var(--navy-3)}.pb.sales-plan,.sw.sales-plan{background:#bfe3e3}.pb.sales-actual,.sw.sales-actual{background:var(--teal)}.plan-bar-set .pb.sales-plan{margin-left:6px}.steps-text{color:var(--ink-2);margin:0 0 12px;padding-left:20px;font-size:13px;line-height:1.7}@media (width<=1100px){.plan-grid{grid-template-columns:1fr}}.plan-grid.one{grid-template-columns:1fr}.plan-grid.one .plan-bars{height:160px}.meter-line{margin-bottom:12px}.meter-head{justify-content:space-between;margin-bottom:4px;font-size:13px;display:flex}.meter-head b{color:var(--navy)}.meter{background:var(--line);border-radius:4px;height:8px;overflow:hidden}.meter i{background:var(--navy-3);border-radius:4px;height:100%;display:block}.meter i.full{background:var(--green)}.letter-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start}.letter-preview{position:sticky;top:12px}.letter-preview iframe{border:1px solid var(--line,#d9dee5);background:#f4f5f7;border-radius:4px;width:100%;height:calc(100vh - 150px);min-height:520px}.letter-body{tab-size:2;font-family:inherit;line-height:1.65}@media (width<=1100px){.letter-layout{grid-template-columns:1fr}.letter-preview{position:static}}.login-card.wide{width:min(540px,100%)}.login-links{justify-content:space-between;gap:8px;margin-top:10px;display:flex}.link-btn{color:var(--teal);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;text-decoration:underline}.otp-input{letter-spacing:6px;text-align:center;font-variant-numeric:tabular-nums;font-size:22px}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.account-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:14px;display:grid}.account-grid>section{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.account-grid>section .card.narrow{border:0;margin:0;padding:0}.twofa .qr{border:1px solid var(--line);background:#fff;border-radius:6px;width:200px;height:200px;margin:8px 0;padding:6px;display:block}.twofa code.secret{letter-spacing:1px;-webkit-user-select:all;user-select:all;font-size:13px}.recovery-codes{columns:2;padding-left:22px;font-size:15px}.recovery-codes code{letter-spacing:1px}.devices{margin-top:12px}.devices summary{cursor:pointer;color:var(--ink-2)}.table.compact th,.table.compact td{padding:5px 8px;font-size:12.5px}.row-picked td{background:var(--teal-soft)}.import-input textarea{margin:6px 0;font-family:inherit}.import-input details{margin:6px 0}.attend-card{grid-template-columns:1fr auto;align-items:center;gap:16px;display:grid}.attend-times{flex-wrap:wrap;gap:28px;display:flex}.attend-times .t{font-variant-numeric:tabular-nums;font-size:26px;font-weight:800}.attend-times .l{color:var(--ink-2);font-size:12px}.attend-btns{gap:10px;display:flex}.attend-btns .btn{justify-content:center;min-width:120px;height:52px;font-size:16px}.week-bar{background:#eef0f3;border-radius:6px;max-width:420px;height:8px;margin-top:6px;overflow:hidden}.week-bar>i{background:var(--teal);height:100%;display:block}.week-bar.over>i{background:var(--red)}.notice-body{white-space:pre-wrap;padding:8px 0 16px;font-size:14.5px;line-height:1.7}.notice-head{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}@media (width<=820px){.attend-card{grid-template-columns:1fr}.attend-btns .btn{flex:1}}.error-text{color:var(--red);font-size:13px;font-weight:600}.ag-row.row-bold .ag-cell{font-weight:700}.narrow-page{max-width:960px}.radio-list{flex-direction:column;gap:6px;margin:8px 0 12px;display:flex}.rule-box{background:var(--teal-soft);border:1px solid #bfe3e1;border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;font-size:13px;display:flex}.rule-box.bad{background:var(--red-soft);border-color:#f0c3be}.text-warn{color:var(--warn,#b45309)}.chat-page{flex-direction:column;height:100%;display:flex}.chat{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);grid-template-columns:300px 1fr;gap:0;height:calc(100vh - 150px);min-height:420px;display:grid;overflow:hidden}.chat.mobile{grid-template-columns:1fr;height:calc(100vh - 120px)}.chat-list{border-right:1px solid var(--line);flex-direction:column;min-height:0;display:flex}.chat-list-head{border-bottom:1px solid var(--line-2);gap:6px;padding:10px;display:flex}.chat-list-head .input{flex:1;min-width:0}.chat-rooms{flex:1;overflow-y:auto}.chat-found-head{justify-content:space-between;padding:6px 12px;display:flex}.chat-room{border-bottom:1px solid var(--line-2);color:var(--ink);grid-template-rows:auto auto;grid-template-columns:1fr auto;gap:2px 8px;padding:10px 12px;display:grid;position:relative}.chat-room:hover{background:#f7f9fb;text-decoration:none}.chat-room.active{background:var(--teal-soft)}.chat-room.unread .chat-room-name{font-weight:700}.chat-room-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-room-last{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;grid-column:1;font-size:12.5px;overflow:hidden}.chat-room-time{color:var(--ink-3);grid-area:1/2;font-size:11.5px}.chat-unread{background:var(--red);color:#fff;border-radius:10px;grid-area:2/2;justify-self:end;padding:0 7px;font-size:11px;font-weight:700}.chat-unread.mention{background:var(--gold);color:var(--navy)}.chat-kind{color:var(--ink-2);vertical-align:1px;background:#eef0f3;border-radius:4px;margin-right:2px;padding:0 4px;font-size:10.5px}.chat-kind.k-company{background:var(--navy);color:#fff}.chat-kind.k-department{background:var(--teal-soft);color:var(--teal)}.chat-kind.k-group{background:var(--blue-soft);color:var(--blue)}.chat-room-pane{flex-direction:column;min-width:0;min-height:0;display:flex}.chat-head{border-bottom:1px solid var(--line-2);align-items:center;gap:8px;padding:10px 14px;display:flex}.chat-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.chat-msgs{background:#f6f8fa;flex:1;padding:12px 14px;overflow-y:auto}.chat-msgs .c{text-align:center;margin-bottom:8px}.chat-day{text-align:center;color:var(--ink-3);margin:12px 0 8px;font-size:12px}.chat-sys{text-align:center;color:var(--ink-3);margin:6px 0;font-size:12px}.chat-msg{max-width:78%;margin:6px 0}.chat-msg.mine{margin-left:auto}.chat-msg.mentioned .chat-bubble{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold-soft)}.chat-msg.found .chat-bubble{outline:2px solid var(--teal)}.chat-who{color:var(--ink-2);margin-bottom:2px;font-size:12px}.chat-line{align-items:flex-end;gap:6px;display:flex}.chat-msg.mine .chat-line{flex-direction:row-reverse}.chat-bubble{border:1px solid var(--line);word-break:break-word;background:#fff;border-radius:10px;min-width:0;padding:7px 10px}.chat-msg.mine .chat-bubble{background:#fff6d8;border-color:#f0dc9c}.chat-meta{color:var(--ink-3);white-space:nowrap;flex-direction:column;align-items:flex-end;font-size:11px;display:flex}.chat-msg.mine .chat-meta{align-items:flex-end}.chat-unread-n{color:var(--gold);font-weight:700}.chat-file{color:var(--ink);align-items:center;gap:8px;display:flex}.chat-file img{border-radius:6px;max-width:220px;max-height:180px;display:block}.chat-file-icon{background:var(--navy);color:#fff;border-radius:4px;padding:2px 5px;font-size:10px}.chat-link{border-left:3px solid var(--teal);background:var(--teal-soft);border-radius:4px;margin-top:2px;padding:6px 8px;display:block}.mention-me{background:var(--gold-soft);border-radius:3px;padding:0 2px}.chat-compose{border-top:1px solid var(--line-2);align-items:flex-end;gap:6px;padding:10px;display:flex;position:relative}.chat-compose textarea{resize:none;flex:1;min-height:38px;max-height:140px}.mention-pop{border:1px solid var(--line);z-index:5;background:#fff;border-radius:8px;min-width:220px;position:absolute;bottom:100%;left:60px;overflow:hidden;box-shadow:0 6px 18px #0000001f}.mention-pop button{text-align:left;cursor:pointer;background:#fff;border:0;width:100%;padding:6px 10px;display:block}.mention-pop button:hover,.mention-pop button:first-child{background:var(--teal-soft)}.chat-empty{justify-content:center;align-items:center;height:100%;padding:30px;display:flex}.pick-list{border:1px solid var(--line-2);border-radius:6px;flex-direction:column;gap:4px;max-height:260px;margin-top:6px;padding:6px 8px;display:flex;overflow-y:auto}.pick-list.short{max-height:150px}.member-list{max-height:300px;margin:8px 0;padding:0;list-style:none;overflow-y:auto}.member-list li{border-bottom:1px solid var(--line-2);padding:4px 0}.nav-badge.mention{background:var(--red);color:#fff}.cal-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.cal-month{text-align:center;min-width:110px;font-size:16px}.cal-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-w{text-align:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#f6f8fa;padding:4px;font-size:12px;font-weight:700}.cal-w:nth-child(6),.cal-w:nth-child(7){color:var(--red)}.cal-day{border-right:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;gap:2px;min-width:0;min-height:96px;padding:3px;display:flex}.cal-day.other{color:var(--ink-3);background:#fafbfc}.cal-day.off .cal-num{color:var(--red)}.cal-day.today{background:#f2fbfb}.cal-day.today .cal-num{color:var(--teal);font-weight:800}.cal-num{align-items:baseline;gap:4px;font-size:12px;display:flex}.cal-hol{color:var(--red);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.cal-item{text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:default;width:100%;color:var(--ink);background:#eef0f3;border:0;border-radius:3px;padding:1px 4px;font-size:11.5px;display:block;overflow:hidden}.cal-item.ev-private{background:var(--blue-soft);color:var(--blue);cursor:pointer}.cal-item.ev-department{background:var(--teal-soft);color:var(--teal);cursor:pointer}.cal-item.ev-company{background:var(--navy);color:#fff;cursor:pointer}.cal-item.leave{background:var(--gold-soft);color:#8a6100}.cal-item.trip{color:#6b3fa0;background:#f1e8fb}.cal-item.resv{color:var(--ink-2);background:#eef0f3}.cal-more{color:var(--ink-3);font-size:11px}.cal-key{font-size:12px}.resv-table-wrap{overflow-x:auto}.resv-table th.today{background:var(--teal-soft)}.resv-table td{vertical-align:top;min-width:110px}.resv{white-space:nowrap;text-overflow:ellipsis;background:#eef0f3;border-radius:3px;max-width:160px;margin-bottom:2px;padding:1px 4px;font-size:11.5px;overflow:hidden}.resv.mine{background:var(--teal-soft);color:var(--teal);font-weight:600}.quota{margin:6px 0 10px;font-size:13px}@media (width<=820px){.cal-day{min-height:64px}.cal-item{font-size:10.5px}.chat-msg{max-width:92%}}.cal-toolbar .input,.inline-form .input-sm{flex:none;width:auto}
