*{box-sizing:border-box;margin:0;padding:0}body{font-family:Pretendard,-apple-system,sans-serif;background:#f5f6f8;color:#1a1a2e}header{background:#fff;border-bottom:1px solid #e2e5ea;padding:9px 24px;display:flex;align-items:center;justify-content:space-between}header h1{font-size:17px;font-weight:700}header h1 span{color:#2563eb}.user-box{font-size:13px;color:#555;display:flex;gap:12px;align-items:center}.user-box button{border:1px solid #d6dae1;background:#fff;border-radius:6px;padding:5px 12px;font-size:12px;cursor:pointer}.user-box .user-name{border:0;background:transparent;padding:5px 4px;color:#555;font-weight:600;border-radius:6px}.user-box .user-name:hover{color:#2563eb;background:#f0f4ff}.login-view{display:flex;justify-content:center;padding-top:12vh}.login-card{background:#fff;border:1px solid #e2e5ea;border-radius:12px;padding:36px 32px;width:360px;box-shadow:0 4px 24px rgba(0,0,0,.05)}.login-card h2{font-size:18px;margin-bottom:6px}.login-card p.sub{font-size:13px;color:#777;margin-bottom:22px}.login-card label{display:block;font-size:12px;font-weight:600;color:#444;margin:12px 0 5px}.login-card input{width:100%;border:1px solid #d6dae1;border-radius:7px;padding:10px 12px;font-size:14px}.login-card button{width:100%;margin-top:22px;background:#2563eb;color:#fff;border:0;border-radius:7px;padding:11px;font-size:14px;font-weight:600;cursor:pointer}.login-card button:disabled{opacity:.6;cursor:default}.login-error{color:#dc2626;font-size:12px;margin-top:10px}.login-quick-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-top:10px}.login-quick-actions:has(>:only-child){grid-template-columns:1fr}.login-card .login-quick-actions a,.login-card .login-quick-actions button{margin-top:0;border:1px solid #d6dae1;background:#fff;color:#344054;border-radius:7px;padding:9px 10px;font-size:13px;font-weight:700;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;white-space:nowrap}.login-card .login-quick-actions button:disabled{opacity:.6;cursor:default}.app-view{display:flex;align-items:stretch;height:calc(100vh - 46px);max-height:calc(100vh - 46px);overflow:hidden}.app-gnb{flex:0 0 132px;width:132px;background:#111827;border-right:1px solid #0b1220;padding:12px 10px;display:flex;flex-direction:column;gap:6px;align-self:stretch;min-height:0;overflow:auto;z-index:5}.app-gnb button{width:100%;border:0;background:transparent;border-radius:8px;padding:11px 12px;font-size:13px;font-weight:700;color:#cbd5e1;cursor:pointer;text-align:left}.app-gnb button:hover{background:rgba(255,255,255,.06);color:#fff}.app-gnb button.active{background:#2563eb;color:#fff}.app-main{flex:1 1 auto;min-width:0;min-height:0;padding:6px 16px 8px;display:flex;flex-direction:column;overflow:hidden}.main-nav{display:none}.tabs{display:flex;gap:6px;margin-bottom:6px;flex-shrink:0}.tabs button{background:#fff;border-radius:8px 8px 0 0;padding:6px 14px;font-size:13px;font-weight:600;color:#666;cursor:pointer;border:1px solid #d6dae1;border-bottom:none}.tabs button.active{background:#2563eb;border-color:#2563eb;color:#fff}.filter-bar{background:#fff;border:1px solid #e2e5ea;border-radius:0 10px 10px 10px;padding:7px 12px;display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:8px;flex-shrink:0}.analysis-controls{flex-shrink:0;overflow:hidden;max-height:260px;opacity:1;transition:max-height .2s ease,opacity .15s ease}.analysis-controls.is-collapsed{max-height:0;opacity:0;pointer-events:none}.controls-expand{flex-shrink:0;margin:0 16px 8px;padding:6px 12px;font-size:13px;font-weight:600;border:1px solid #ccc;border-radius:8px;background:#fff;cursor:pointer}.filter-bar.standalone{border-radius:10px}.filter-bar .f{display:flex;flex-direction:column;gap:3px}.filter-bar .f.wide input{min-width:220px}.filter-bar label{font-size:12px;font-weight:600;color:#666}.filter-bar input,.filter-bar select{border:1px solid #d6dae1;border-radius:6px;padding:6px 9px;font-size:13px;min-width:100px}.filter-bar .number-range{display:flex;align-items:center;gap:5px}.filter-bar .number-range input{min-width:0;width:72px}.filter-bar button{background:#2563eb;color:#fff;border:0;border-radius:7px;padding:8px 20px;font-size:14px;font-weight:600;cursor:pointer}.multi-filter{position:relative;min-width:140px}.multi-filter-wide{min-width:180px}.multi-filter-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:140px;max-width:240px;background:#fff!important;color:#344054!important;border:1px solid #d6dae1!important;border-radius:6px!important;padding:5px 8px!important;font-size:12px!important;font-weight:500!important;text-align:left;cursor:pointer}.multi-filter-trigger.is-open{border-color:#2563eb!important;box-shadow:0 0 0 2px rgba(37,99,235,.12)}.multi-filter-summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto}.multi-filter-caret{color:#98a2b3;font-size:10px;flex:0 0 auto}.multi-filter-panel{z-index:120;min-width:280px;max-width:min(420px,90vw);max-height:min(420px,70vh);display:flex;flex-direction:column;gap:8px;padding:10px;background:#fff;border:1px solid #e2e5ea;border-radius:10px;box-shadow:0 12px 28px rgba(16,24,40,.12)}.multi-filter-panel.multi-filter-wide-panel{width:min(720px,calc(100vw - 24px));min-width:min(720px,calc(100vw - 24px));max-width:calc(100vw - 24px)}.multi-filter-panel .license-chips{margin-bottom:0}.multi-filter-panel .license-search{width:100%;border:1px solid #d6dae1;border-radius:6px;padding:6px 8px;font-size:12px}.filter-license-checks{min-height:0;max-height:260px;overflow:auto;flex:1 1 auto}.industry-catalog{min-height:0;display:flex;flex:1 1 auto;flex-direction:column;gap:8px}.industry-catalog-tabs{display:flex;align-items:stretch;gap:5px;border-bottom:1px solid #d9e1ee}.industry-catalog-tabs button{display:inline-flex;align-items:center;gap:6px;border:1px solid #d9e1ee;border-bottom:0;border-radius:7px 7px 0 0;padding:7px 12px;background:#f8fafc;color:#667085;font-size:12px;font-weight:700;cursor:pointer}.industry-catalog-tabs button:before{content:"";width:8px;height:8px;border-radius:999px;background:currentColor;opacity:.55}.industry-catalog-tabs button[aria-selected=true]:before{opacity:1}.industry-catalog-tabs button.is-active{border-color:#2563eb;background:#2563eb;color:#fff}.industry-catalog-tabs button span{color:#98a2b3;font-size:10px;font-weight:600}.industry-catalog-tabs button.is-active span{color:#dbeafe}.industry-catalog-search{flex:0 0 auto}.industry-catalog-body{min-height:180px;max-height:min(410px,calc(70vh - 190px));overflow:auto;border:1px solid #e2e8f0;border-radius:7px;padding:0 12px 10px;background:#fff}.industry-catalog-section{padding:10px 0 11px;border-bottom:1px dashed #cbd5e1}.industry-catalog-section:last-child{border-bottom:0}.industry-catalog-section h4{margin:0 0 8px;color:#344054;font-size:12px;font-weight:800}.industry-catalog-group+.industry-catalog-group{margin-top:9px}.industry-catalog-group h5{margin:0 0 5px;color:#667085;font-size:10px;font-weight:700}.industry-catalog-group-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;margin:0 0 5px;padding:5px 7px;border:1px solid #e4e7ec;border-radius:5px;background:#f9fafb;color:#475467;font-size:11px;font-weight:700;text-align:left;cursor:pointer}.industry-catalog-group-toggle:hover{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.industry-catalog-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:4px 8px;gap:4px 8px}.industry-catalog-items label{min-width:0;display:flex;align-items:flex-start;gap:5px;padding:4px 5px;border:1px solid transparent;border-radius:5px;color:#344054;font-size:11px;font-weight:600;line-height:1.3;cursor:pointer}.industry-catalog-items label:hover{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.industry-catalog-items label.is-selected{border-color:#93c5fd;background:#dbeafe;color:#1d4ed8}.industry-catalog-items input{width:14px;height:14px;min-width:14px;margin:0}.industry-catalog-items span{min-width:0;overflow-wrap:anywhere}.industry-catalog-detail{display:block;margin-top:3px;color:#667085;font-size:10px;font-weight:400;overflow-wrap:anywhere}.industry-catalog-search-note{margin:4px 0 8px;font-size:12px;color:#667085}.filter-check-list{display:flex;flex-wrap:wrap;gap:5px;max-height:220px;overflow:auto;padding:2px}.filter-check-chip{display:inline-flex;flex-direction:row;align-items:center;gap:4px;border:1px solid #e2e5ea;background:#fff;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:600;color:#344054;white-space:nowrap;cursor:pointer}.filter-check-chip input{width:14px;height:14px;min-width:14px;padding:0;margin:0}.multi-filter-actions{display:flex;justify-content:space-between;gap:8px;padding-top:2px}.multi-filter-actions .multi-filter-clear{background:#fff!important;color:#667085!important;border:1px solid #d6dae1!important;padding:5px 10px!important;font-size:12px!important;font-weight:600!important}.multi-filter-actions .multi-filter-done{background:#2563eb!important;color:#fff!important;padding:5px 14px!important;font-size:12px!important}.segmented{display:flex;border:1px solid #d6dae1;border-radius:7px;overflow:hidden;background:#fff;height:28px}.segmented button{border:0;border-radius:0;background:#fff;color:#555;padding:0 12px;font-size:13px;font-weight:600}.segmented button+button{border-left:1px solid #d6dae1}.segmented button.active{background:#2563eb;color:#fff}.segmented button.case-mode-secondary{font-weight:500;color:#6b7280;background:#f8f9fb}.segmented button.case-mode-secondary.active{font-weight:600;color:#fff;background:#2563eb}.legend{font-size:13px;color:#666;display:flex;gap:14px;margin-left:auto;align-items:center}.legend .chip{display:inline-block;width:14px;height:14px;border-radius:3px;vertical-align:-2px;margin-right:4px}.chip.win{background:#fde047;border:1px solid #eab308}.chip.win.is-off{background:#fff;border:1px dashed #cbd5e1}.chip.me{background:#fff;border:2px solid #dc2626}.legend-toggle{display:inline-flex;align-items:center;gap:0;border:1px solid #e2e8f0;background:#fff;border-radius:999px;padding:4px 10px 4px 8px;font-size:12px;font-weight:600;color:#64748b;cursor:pointer;line-height:1.2;transition:border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease}.legend-toggle:hover{border-color:#cbd5e1;color:#334155;background:#f8fafc}.legend-toggle.is-on{border-color:#eab308;background:#fffbeb;color:#854d0e;box-shadow:inset 0 0 0 1px rgba(234,179,8,.25)}.legend-toggle .chip{margin-right:6px}.table-wrap{background:#fff;border:1px solid #e2e5ea;border-radius:10px;overflow:auto;flex:1 1 auto;min-height:0}.myroom-table,.notice-table,.table-wrap{max-height:none}.criteria-title{font-size:12px;font-weight:700;color:#dc2626;background:#fff;border:1px solid #e2e5ea;border-bottom:0;border-radius:10px 10px 0 0;padding:5px 12px;white-space:pre-wrap;flex-shrink:0}.criteria-title.muted{color:#64748b;font-weight:600}.criteria-title-extra{font-weight:600;color:#b91c1c;opacity:.85}.table-wrap:has(.criteria-title){border-radius:0 0 10px 10px;border-top:0}.monthly-table-scroll{overflow:visible}.monthly-grid thead th{background:#f1f5f9!important;color:#1e293b;font-weight:700;font-size:11px;letter-spacing:-.01em;border-bottom:2px solid #94a3b8!important;padding:7px 5px;white-space:nowrap}.monthly-grid thead th:first-child{background:#e2e8f0!important;color:#0f172a}.monthly-grid td.side-metric,.monthly-grid th.side-metric{min-width:64px;background:#f8fafc;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.monthly-grid thead th.side-metric{background:#e0e7ff!important;color:#1e3a8a;border-bottom-color:#818cf8!important}.monthly-grid thead th.has-formula{cursor:help;-webkit-text-decoration:underline dotted rgba(30,58,138,.45);text-decoration:underline dotted rgba(30,58,138,.45);text-underline-offset:3px}.formula-tooltip{position:fixed;z-index:220;width:280px;padding:10px 12px;border-radius:8px;border:1px solid #c7d2fe;background:#1e293b;color:#e2e8f0;font-size:12px;line-height:1.45;font-weight:500;box-shadow:0 10px 28px rgba(15,23,42,.28);pointer-events:none;white-space:normal}.formula-tooltip div+div{margin-top:4px;color:#94a3b8;font-size:11px;font-weight:400}.monthly-grid td.side-metric.neg{color:#b91c1c}.monthly-grid td.side-metric.expected-metric,.monthly-grid td.side-metric.pos{color:#047857}.monthly-grid td.side-metric.expected-metric.is-strong{font-weight:700}.case-grid tr.rate-sign-boundary>td,.case-grid tr.rate-sign-boundary>th,.monthly-grid tr.rate-sign-boundary>td,.monthly-grid tr.rate-sign-boundary>th{border-top:none!important;box-shadow:var(--own-bid-shadow,inset 0 0 0 0 transparent),inset 0 1px 0 0 #e8ecf1,inset 0 2px 0 0 rgba(255,255,255,.95);padding-top:3px}.case-grid th.rate-neg,.monthly-grid th.rate-neg{color:#b91c1c;font-weight:700}.case-grid tr.rate-neg-row>th.rate-neg,.monthly-grid tr.rate-neg-row>th.rate-neg{color:#b91c1c}.monthly-grid td.cell-count{cursor:pointer;font-weight:600}.monthly-grid td.cell-count:not(.is-colored){background:transparent!important}.monthly-grid td.cell-count.is-colored{font-weight:700}td.has-memo{position:relative;cursor:help}td.has-memo:after{content:"";position:absolute;top:0;right:0;border-color:transparent #dc2626 transparent transparent;border-style:solid;border-width:0 7px 7px 0}td.tip-active{outline:2px solid #2563eb;outline-offset:-2px;z-index:2}td.tip-active,td.tip-pinned{box-shadow:inset 0 0 0 1px #1d4ed8}td.tip-pinned{outline-color:#2563eb}th.row-tip-active,tr.row-tip-active>th{background:#dbeafe!important;color:#1e3a8a;box-shadow:inset 3px 0 0 #2563eb}td.col-tip-active,th.col-tip-active{background:#dbeafe!important;color:#1e3a8a;box-shadow:inset 0 -2px 0 #2563eb}.case-grid tbody tr:hover>td:not(.is-colored):not(.win):not(.me):not(.col-tip-active),.case-grid tbody tr:hover>th:not(.row-tip-active):not(.col-tip-active),.monthly-grid tbody tr:hover>td:not(.is-colored):not(.win):not(.me):not(.col-tip-active),.monthly-grid tbody tr:hover>th:not(.row-tip-active):not(.col-tip-active){background:#e6ebf2!important}.cell-tooltip{position:fixed;z-index:200;width:280px;max-height:min(320px,calc(100vh - 16px));display:flex;flex-direction:column;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:10px;box-shadow:0 12px 40px rgba(15,23,42,.35);overflow:hidden;pointer-events:auto}.cell-tooltip.is-preview{pointer-events:none}.cell-tooltip-head{padding:10px 12px 8px;border-bottom:1px solid #334155;background:#1e293b}.cell-tooltip-head.is-drag-handle{cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cell-tooltip-key-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:6px}.cell-tooltip-key{display:flex;flex-wrap:wrap;gap:6px;flex:1 1 auto;min-width:0}.cell-tooltip-key .pill,.memo-popover-head .pill{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;background:#2563eb;color:#fff;border:0;line-height:1.3}.cell-tooltip-key .pill.muted,.memo-popover-head .pill.muted{background:#475569}.cell-tooltip-key .pill.count{background:#b45309}.cell-tooltip-key .pill.pin{background:#059669}.cell-tooltip-key .pill.pin.is-button{cursor:pointer;font:inherit;font-size:11px;font-weight:700}.cell-tooltip-key .pill.pin.is-button:hover{background:#047857;filter:brightness(1.05)}.cell-tooltip-close,.memo-popover-close{flex:0 0 auto;width:26px;height:26px;border:0;border-radius:6px;background:transparent;color:#cbd5e1;font-size:20px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.cell-tooltip-close{margin:-2px -4px 0 0}.cell-tooltip-close:hover,.memo-popover-close:hover{background:#334155;color:#fff}.cell-tooltip.is-pinned{border-color:#f59e0b;box-shadow:0 12px 40px rgba(180,83,9,.35)}.cell-tooltip-sub{font-size:11px;color:#94a3b8;line-height:1.35}.cell-tooltip-body{overflow:auto;padding:8px 10px;flex:1 1 auto;max-height:200px}.cell-tooltip-list{margin:0;padding:0 0 0 6ch;font-size:12px;line-height:1.45}.monthly-notice-tooltip .cell-tooltip-list{width:max-content;min-width:100%}.monthly-notice-tooltip .cell-tooltip-list code,.monthly-notice-tooltip .cell-tooltip-list li{white-space:nowrap}.cell-tooltip-list li{margin:2px 0}.cell-tooltip-list code{font-size:12px;color:#fde68a}.cell-tooltip-list code,.cell-tooltip-region{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.cell-tooltip-region{margin-left:10px;color:#93c5fd;font-size:11px}.cell-tooltip-region.is-missing{color:#fca5a5}.cell-tooltip-empty{font-size:12px;color:#94a3b8;padding:6px 2px}.cell-tooltip-foot{border-top:1px solid #334155;padding:7px 12px;font-size:11px;color:#cbd5e1;background:#1e293b}.cell-tooltip-error{margin-top:5px;color:#fca5a5}.cell-tooltip-more{width:100%;margin-top:7px;padding:6px 10px;border:1px solid #475569;border-radius:6px;background:#334155;color:#f8fafc;font-size:11px;font-weight:700;cursor:pointer}.cell-tooltip-more:hover:not(:disabled){background:#475569}.cell-tooltip-more:disabled{cursor:wait;opacity:.7}table{border-collapse:separate;border-spacing:0;font-size:12px}td,th{border-right:1px solid #eef0f3;border-bottom:1px solid #eef0f3;padding:0 5px;text-align:center;white-space:nowrap;min-width:42px;height:15px;line-height:15px}thead th{top:0;z-index:2;color:#444}tbody th,tfoot th,thead th{position:-webkit-sticky;position:sticky;background:#f8f9fb;font-weight:600}tbody th,tfoot th{left:0;z-index:1;color:#333;min-width:64px}thead th:first-child{left:0;z-index:3}tfoot td,tfoot th{position:-webkit-sticky;position:sticky;background:#f3f4f6;font-weight:600;border-top:2px solid #d6dae1}td.win{background:#fde047}td.me,td.win{font-weight:700}td.me{--own-bid-shadow:inset 0 0 0 2px #dc2626;color:#dc2626;box-shadow:var(--own-bid-shadow)}.case-table-scroll{overflow:visible;max-width:100%;background:#fff}table.case-grid{border-collapse:separate;border-spacing:0;font-size:12px;min-width:100%}table.case-grid thead th{background:#f1f5f9!important;color:#1e293b;font-weight:700;font-size:12px;letter-spacing:-.01em;border-bottom:2px solid #94a3b8!important;padding:3px 5px;white-space:nowrap}table.case-grid thead th:first-child{background:#e2e8f0!important;color:#0f172a}table.case-grid td.cell-count{cursor:pointer;font-weight:600}table.case-grid td.col-summary,table.case-grid th.col-summary{min-width:64px;white-space:nowrap;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.case-grid tbody td.col-summary:first-of-type,table.case-grid tfoot td.col-summary:first-of-type,table.case-grid thead th.col-summary:first-of-type{border-left:2px solid #c7d2fe}table.case-grid thead th.col-summary{background:#e0e7ff!important;color:#1e3a8a;border-bottom-color:#818cf8!important;font-weight:700}table.case-grid thead th.col-summary.has-formula{cursor:help;-webkit-text-decoration:underline dotted rgba(30,58,138,.45);text-decoration:underline dotted rgba(30,58,138,.45);text-underline-offset:3px}table.case-grid tbody td.col-summary,table.case-grid tfoot td.col-summary{background:#f8fafc;font-weight:600;color:#0f172a}table.case-grid td.col-summary.prepar-index{color:#047857;font-weight:400}table.case-grid td.col-summary.prepar-index.is-strong{font-weight:700}table.case-grid td.col-summary.idx-pos{color:#047857}table.case-grid td.col-summary.idx-neg{color:#b91c1c}table.case-grid th.col-notice,table.case-grid th.col-notice-tip{cursor:help}table.case-grid th.col-notice{min-width:52px;max-width:72px;white-space:normal;line-height:1.2;vertical-align:bottom;cursor:help;-webkit-text-decoration:underline dotted rgba(100,116,139,.45);text-decoration:underline dotted rgba(100,116,139,.45);text-underline-offset:2px}.formula-tooltip.notice-name-tooltip{width:min(320px,calc(100vw - 16px));font-weight:600}.formula-tooltip.notice-name-tooltip div+div{font-weight:400}table.case-grid tfoot th{background:#f8fafc;font-weight:700}table.case-grid td.me-dev{color:#dc2626;font-weight:700}table.case-grid td.memo-anchor{position:relative;cursor:pointer}table.case-grid td.memo-anchor.has-memo:after{content:"";position:absolute;top:0;right:0;border-color:transparent #dc2626 transparent transparent;border-style:solid;border-width:0 7px 7px 0}table.case-grid td.win-dev{background:#fef9c3;font-weight:600}table.case-grid.row-scan-active tfoot td.row-scan-active-col:not(.col-summary){box-shadow:inset 0 3px 0 0 #94a3b8}table.case-grid.row-scan-active tfoot td.row-scan-active-col:not(.col-summary):not(.win-dev):not(.me-dev){background:#e6ebf2}table.case-grid.row-scan-active tfoot td.me-dev.row-scan-active-col{color:#dc2626;font-weight:800}table.case-grid tr.case-result td.win-dev.row-scan-active-col{background:#fef9c3;color:inherit;box-shadow:inset 0 3px 0 0 #94a3b8}table.case-grid tr.case-my-bid td.row-scan-active-col:not(.me-dev){background:#e6ebf2}table.case-grid tr.case-winner-name td:not(.col-summary){max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#334155;font-size:11px}.memo-popover{position:fixed;z-index:200;width:280px;display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid #334155;border-radius:10px;background:#0f172a;color:#e2e8f0;box-shadow:0 12px 40px rgba(15,23,42,.35);font-size:12px}.memo-popover-head{display:flex;align-items:center;gap:6px;min-width:0}.memo-popover-head .pill:first-child{flex:0 0 auto}.memo-popover-head .pill.muted{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.memo-popover-close{margin-left:auto}.memo-popover textarea{width:100%;resize:vertical;border:1px solid #64748b;border-radius:6px;background:#fff;color:#0f172a;padding:6px 8px;font-family:inherit;font-size:12px;line-height:1.4}.memo-popover textarea:focus{outline:2px solid #60a5fa;border-color:#2563eb}.memo-popover-actions{display:flex;justify-content:flex-end;gap:6px}.memo-popover-actions button{border:1px solid #475569;border-radius:6px;background:#1e293b;color:#e2e8f0;padding:4px 12px;font-size:12px;cursor:pointer}.memo-popover-actions button:hover:not(:disabled){background:#334155}.memo-popover-actions button:disabled{cursor:default;opacity:.5}.memo-popover-actions button.primary{border-color:#2563eb;background:#2563eb;color:#fff;font-weight:600}.memo-popover-actions button.primary:hover:not(:disabled){background:#1d4ed8}th.has-memo{position:relative;cursor:help}th.has-memo:after{content:"";position:absolute;top:0;right:0;border-color:transparent #dc2626 transparent transparent;border-style:solid;border-width:0 7px 7px 0}td.win.me{background:#fde047}td.zero{color:#c8ccd4}.status-msg{font-size:14px;color:#888;padding:30px;text-align:center}.status-msg.filter-meta-hint{padding:10px 14px;margin:0 0 8px;text-align:left;color:#555;background:#f7f8fa;border:1px solid #e5e7eb;border-radius:6px;line-height:1.45}.status-msg.filter-meta-hint div+div{margin-top:4px}.inline-status{font-size:13px;color:#666;padding:8px 10px;border-bottom:1px solid #eef0f3}.calculation-warning{font-size:13px;color:#92400e;background:#fffbeb;padding:8px 10px;border-bottom:1px solid #fde68a}.floor-rate-badge{display:block;margin:3px auto 0;padding:2px 3px;border-radius:3px;font-size:10px;line-height:1.3;font-weight:600;white-space:normal}.floor-rate-official{background:#ecfdf5;color:#065f46}.floor-rate-estimated{background:#fff3cd;color:#854d0e;border:1px solid #eab308}.floor-estimate-marker{color:#854d0e;font-weight:700}.text-cell{text-align:left;max-width:420px;overflow:hidden;text-overflow:ellipsis}.row-action{border:1px solid #d6dae1;background:#fff;color:#2563eb;border-radius:6px;padding:5px 9px;font-size:12px;font-weight:700;cursor:pointer}.row-action.danger{color:#dc2626}.row-actions{display:flex;gap:5px;justify-content:center}.past-panel{background:#fff;border:1px solid #e2e5ea;border-radius:10px;margin-bottom:8px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;max-height:none;overflow:hidden}.past-panel.is-open{max-height:min(468px,54vh)}.past-panel-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:0;background:#f8fafc;padding:8px 12px;font-size:12px;font-weight:600;color:#334155;cursor:pointer;text-align:left;flex-shrink:0}.past-panel-toggle:hover{background:#f1f5f9}.past-panel-summary{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:500;color:#475569}.past-panel-chevron{flex:0 0 auto;padding:2px 10px;border:1px solid #bfdbfe;border-radius:6px;background:#eff6ff;color:#1d4ed8;font-size:17px;font-weight:800;white-space:nowrap}.past-panel.is-open .past-list{flex:1 1 auto;min-height:0;overflow:auto;border-top:1px solid #eef0f3;container-type:inline-size}.myroom-table table,.notice-table table,.past-list table{width:100%}.past-list table{font-size:15px;table-layout:fixed;min-width:0}.past-col-select{width:44px}.past-col-date{width:104px}.past-col-number{width:140px}.past-notice-number{text-align:left}.past-col-agency{width:16%}.past-col-amount{width:116px}.past-col-license{width:16%}.past-col-region{width:80px}.past-col-bidders{width:60px}.past-list td,.past-list th{height:32px;line-height:1.45;padding:8px;min-width:0;white-space:normal;overflow-wrap:anywhere}.past-list .text-cell{max-width:none;overflow:hidden;white-space:normal;text-overflow:ellipsis}.past-list .past-name{white-space:normal;overflow-wrap:anywhere}@container (max-width: 1100px){.past-list table,.past-list tbody{display:block}.past-list colgroup{display:none}.past-list thead{position:absolute;width:1px;height:1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.past-list tbody tr:not(:has(td[colspan])){display:grid;grid-template-columns:40px minmax(0,1fr) minmax(0,1fr);margin:8px;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.past-list tbody td{height:auto;text-align:left;border:0}.past-list tbody td:first-child{grid-column:1;grid-row:1/span 6}.past-list tbody td:nth-child(2){grid-column:2}.past-list tbody td:nth-child(3){grid-column:3}.past-list tbody td:nth-child(4),.past-list tbody td:nth-child(5),.past-list tbody td:nth-child(7){grid-column:2/-1}.past-list tbody td:nth-child(6){grid-column:2;grid-row:4}.past-list tbody td:nth-child(7){grid-row:5}.past-list tbody td:nth-child(8){grid-column:3;grid-row:4}.past-list tbody td:nth-child(9){grid-column:2/-1}.past-list tbody td[data-label]:before{content:attr(data-label);display:flow-root;font-size:12px;color:#64748b;margin-bottom:2px}}.source-badge{display:inline-flex;margin-left:5px;padding:1px 5px;border-radius:4px;background:#e2e8f0;color:#334155;font-size:10px;font-weight:700;line-height:1.4;vertical-align:middle;white-space:nowrap}.past-list td[colspan]{white-space:normal;height:auto;line-height:1.45;padding:10px;overflow:visible;text-overflow:unset}.past-list input[type=checkbox]{width:18px;height:18px}.past-list tr.row-disabled{opacity:.5}.past-list tr.row-disabled input[type=checkbox]{cursor:default}.past-list tbody tr.row-selectable{cursor:pointer}.past-list tbody tr.row-selectable:hover td{background:#e6ebf2}.past-list tbody tr.row-selectable:not(.is-selected):hover td:first-child{box-shadow:inset 3px 0 0 0 #94a3b8}.past-list tbody tr.is-selected td{background:#dbeafe}.past-list tbody tr.is-selected:hover td{background:#c7ddfa}.past-list tbody tr.is-selected td:first-child{box-shadow:inset 3px 0 0 0 #2563eb}.past-list tbody tr.is-selected .text-cell{font-weight:700;color:#1e3a8a}.past-list tbody tr:focus-within td{box-shadow:inset 0 2px 0 0 #1d4ed8,inset 0 -2px 0 0 #1d4ed8}.past-list tbody tr:focus-within td:first-child{box-shadow:inset 0 2px 0 0 #1d4ed8,inset 0 -2px 0 0 #1d4ed8,inset 2px 0 0 0 #1d4ed8}.past-list tbody tr:focus-within td:last-child{box-shadow:inset 0 2px 0 0 #1d4ed8,inset 0 -2px 0 0 #1d4ed8,inset -2px 0 0 0 #1d4ed8}.past-unavailable{flex:0 0 auto;font-size:12px;color:#9aa1ab;white-space:nowrap}.notice-table .bulk-add{margin-left:10px}.myroom-table input,.myroom-table textarea{width:100%;border:1px solid #d6dae1;border-radius:6px;padding:5px 7px;font-size:12px}.myroom-table textarea{min-width:220px;height:42px;resize:vertical;line-height:1.3}.amount-input{min-width:120px}.status-badge{display:inline-block;padding:2px 8px}.status-badge.active{background:#dbeafe;color:#2563eb}.status-badge.missed{background:#e2e8f0;color:#475569}.status-badge.opened{background:#d1fae5;color:#047857}.status-badge.past{background:#fef3c7;color:#b45309}.myroom-group-row td{background:#f8f9fb;font-weight:600;font-size:12px}.cal-strip{background:#fff;border:1px solid #e2e5ea;border-radius:10px;padding:10px;margin-bottom:10px}.cal-head{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:8px}.cal-month{font-weight:600;font-size:13px}.cal-days{display:flex;flex-wrap:nowrap;gap:3px;overflow-x:visible}.cal-cell{flex:1 1;min-width:0;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;border:1px solid #e2e5ea;border-radius:6px;background:#fafbfc;cursor:pointer;font-size:11px;color:#333}@media (max-width:1439px){.cal-days{overflow-x:auto}.cal-cell{flex:1 0 44px;min-width:44px}}.cal-cell:hover{background:#f0f3f7}.cal-cell.today{border-color:#1A3A5C;box-shadow:inset 0 0 0 1px #1A3A5C}.cal-cell.selected{background:#1A3A5C}.cal-num{font-size:14px;font-weight:600}.cal-dow{color:#9aa1ab}.cal-cell.sun .cal-dow,.cal-cell.sun .cal-num{color:#c0392b}.cal-cell.sat .cal-dow,.cal-cell.sat .cal-num{color:#2d6cdf}.cal-cell.selected,.cal-cell.selected .cal-dow,.cal-cell.selected .cal-num{color:#fff}.cal-counts{display:flex;flex-direction:column;gap:1px;min-height:26px}.cal-open{color:#1e7a44;white-space:nowrap}.cal-due{color:#c0392b;white-space:nowrap}.cal-cell.selected .cal-due,.cal-cell.selected .cal-open{color:#ffe28a}.app-view.admin-view{padding:10px 20px;min-height:auto}.admin-view,.app-view.admin-view{display:flex;flex-direction:column;gap:10px}.admin-toolbar{display:flex;gap:10px;align-items:center}.admin-create-form>button,.admin-toolbar>button,.detail-actions>button{background:#2563eb;color:#fff;border:0;border-radius:7px;padding:8px 16px;font-size:13px;font-weight:700;cursor:pointer}.admin-create-form>button:disabled,.admin-toolbar>button:disabled,.detail-actions>button:disabled{opacity:.55;cursor:default}.admin-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.admin-section-head>div{display:flex;align-items:baseline;gap:8px;min-width:0}.admin-section-head h2{font-size:15px;color:#1f2937}.admin-section-head span{font-size:12px;color:#666}.license-editor>span{display:block;font-size:11px;color:#667085;margin-bottom:3px}.admin-create-form{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr)) minmax(260px,2fr) auto;grid-gap:10px;gap:10px;align-items:end}.admin-create-form label,.user-detail-form label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;color:#555}.admin-create-form input,.user-detail-form input,.user-search{border:1px solid #d6dae1;border-radius:6px;padding:7px 9px;font-size:13px;min-width:0;background:#fff}.admin-master-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:12px;gap:12px;flex:1 1 auto;min-height:0;overflow:hidden}.user-detail-panel,.user-list-panel{background:#fff;border:1px solid #e2e5ea;border-radius:10px;padding:14px;min-height:0}.user-list-panel{display:flex;flex-direction:column;gap:9px;overflow:hidden}.admin-add-user{border:0;background:#2563eb;color:#fff;border-radius:7px;padding:7px 10px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}.admin-add-user:disabled{opacity:.55;cursor:default}.user-list{display:flex;flex-direction:column;gap:4px;overflow:auto;min-height:0;padding-right:2px}.user-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.user-toolbar .user-search{flex:0 1 220px;min-width:150px}.status-chips{display:flex;align-items:center;gap:5px;flex-wrap:wrap;flex:1 1 auto;min-width:0}.status-chip{border:1px solid #e2e5ea;background:#fff;color:#475467;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap}.status-chip b{font-weight:700;color:#1d4ed8}.status-chip:hover{border-color:#b9ccf4}.status-chip.selected{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.status-chip.more{border-style:dashed;color:#98a2b3}.link-button{border:0;background:none;color:#2563eb;font-size:inherit;cursor:pointer;padding:0;text-decoration:underline}.user-list-row{width:100%;display:flex;align-items:center;gap:8px;border:1px solid transparent;border-radius:7px;background:#fff;color:#344054;padding:8px 10px;text-align:left;cursor:pointer;min-width:0}.user-list-row:hover{background:#f8fafc;border-color:#e2e8f0}.user-list-row.selected{background:#eff6ff;border-color:#93c5fd}.user-list-row .status-badge{flex-shrink:0;margin-left:auto}.user-list-name{flex-shrink:0;font-size:13px;font-weight:700}.user-list-company{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#667085}.user-list-company.unset{color:#b6bdc9;font-style:italic}.user-list-period{flex-shrink:0;font-size:11px;color:#98a2b3}.user-list-licenses{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#667085}.attention-box{border:1px solid #fde4c2;background:#fffaf2;border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.attention-box.none{border-color:#e5efe3;background:#f6fbf5;color:#4d7c53;font-size:12px}.attention-box h3{font-size:12px;color:#9a5b13;margin:0 0 2px}.attention-item{display:flex;align-items:center;gap:8px;border:0;background:none;padding:3px 2px;font-size:12px;color:#475467;cursor:pointer;text-align:left;border-radius:5px}.attention-item:hover{background:#fdf1de}.attention-label{flex-shrink:0;font-weight:700;color:#b45309;font-size:11px}.attention-user{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attention-line{font-size:11px;color:#b45309;background:#fffaf2;border:1px solid #fde4c2;border-radius:6px;padding:6px 10px}.user-list-empty{color:#667085;font-size:13px;padding:18px 4px;text-align:center}.status-badge{display:inline-flex;align-items:center;flex:0 0 auto;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700;line-height:1.25;white-space:nowrap}.status-badge.active{background:#dcfce7;color:#15803d}.status-badge.expiring{background:#ffedd5;color:#c2410c}.status-badge.expired{background:#fee2e2;color:#dc2626}.status-badge.inactive,.status-badge.not_started{background:#e5e7eb;color:#4b5563}.status-badge.period_unset{background:#f3f4f6;color:#6b7280}.user-detail-panel{overflow:auto;display:flex;flex-direction:column}.user-detail-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#667085;text-align:center}.user-detail-empty h2{color:#344054;font-size:17px;margin-bottom:6px}.user-detail-empty p{font-size:13px}.user-detail-form{display:flex;flex-direction:column;gap:18px;flex:1 1 auto;min-height:0}.detail-fields{max-width:960px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.user-detail-form input[readonly]{background:#f8fafc;color:#667085}.active-toggle{flex-direction:row!important;align-items:center;gap:7px!important;align-self:end;height:34px}.active-toggle input,.license-checks input[type=checkbox]{width:14px;height:14px;min-width:14px;padding:0}.detail-license-editor{min-width:0;display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.detail-license-editor>span{display:block;font-size:11px;font-weight:700;color:#555;margin-bottom:4px}.license-chips{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px;align-items:center}.license-chips-empty{font-size:11px;color:#98a2b3}.license-chip{display:inline-flex;align-items:center;gap:4px;background:#eef4ff;border:1px solid #b9ccf4;color:#2549a7;border-radius:999px;padding:4px 6px 4px 10px;font-size:11px;font-weight:700;white-space:nowrap}.license-chip button{border:0;background:transparent;color:#6284d4;font-size:13px;line-height:1;cursor:pointer;padding:0 3px;border-radius:50%}.license-chip button:hover{color:#1d3a8a;background:#dbe7ff}.license-chip-all{background:#fef3e2;border-color:#f4cf9b;color:#a15c0f}.license-chip-all button{color:#c8871f}.license-chip-all button:hover{color:#8a5a08;background:#fbe6c4}.license-chip-more{border:1px dashed #c5cbd4;background:#fff;color:#667085;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600;cursor:pointer}.license-chip-more:hover{color:#344054;border-color:#98a2b3}.license-checks{display:flex;flex-direction:column;gap:6px;border:1px solid #eef0f3;border-radius:7px;padding:6px;background:#fbfcfe;flex:1 1 auto;min-height:0}.license-all-row{display:inline-flex;flex-direction:row;align-items:center;gap:4px;align-self:flex-start;border:1px solid #e2e5ea;background:#fff;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:600;color:#344054;white-space:nowrap}.license-search{border:1px solid #e2e5ea;border-radius:6px;padding:5px 8px;font-size:11px;width:100%;box-sizing:border-box}.license-empty{font-size:12px;color:#888}.license-groups{display:flex;flex-direction:column;gap:4px;flex:1 1 auto;min-height:120px;overflow:auto}.license-group{border:1px solid #eef0f3;border-radius:6px;background:#fff}.license-group summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;padding:5px 8px;font-size:11px;font-weight:700;color:#555}.license-group summary::-webkit-details-marker{display:none}.license-group summary:before{content:"▸";font-size:9px;color:#98a2b3;transition:transform .15s}.license-group[open] summary:before{transform:rotate(90deg)}.license-group-count{color:#98a2b3;font-weight:500}.license-group-items{display:flex;flex-wrap:wrap;gap:5px;padding:0 8px 8px}.license-group-items label{display:inline-flex;flex-direction:row;align-items:center;gap:4px;border:1px solid #e2e5ea;background:#fff;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:600;color:#344054;white-space:nowrap}.detail-actions{display:flex;gap:8px;justify-content:flex-end}.detail-actions>button.danger{background:#fff;color:#dc2626;border:1px solid #fca5a5}.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.modal-card{background:#fff;border:1px solid #e2e5ea;border-radius:12px;padding:24px;width:100%;max-width:440px;box-shadow:0 12px 40px rgba(0,0,0,.18)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.modal-head h2{font-size:16px;color:#1f2937}.modal-close{border:0;background:transparent;color:#667085;font-size:22px;line-height:1;cursor:pointer;padding:0 4px;border-radius:6px}.modal-close:hover{color:#1f2937;background:#f0f2f5}.modal-form{grid-template-columns:1fr}.modal-divider{border:0;border-top:1px solid #e2e5ea;margin:18px 0}.legend .chip.win.win-approx,table.case-grid td.win-dev.win-approx,td.win.me.win-approx,td.win.win-approx{background-image:repeating-linear-gradient(135deg,rgba(120,90,0,.32) 0 3px,transparent 3px 7px)}.legend .chip.win.win-approx{border:1px solid #b98900}.rate-basis{display:inline-flex;align-items:center;gap:4px}.rate-basis-label{color:#6b7280;margin-right:2px}.rate-basis button{padding:2px 8px;font-size:11px;font-weight:600;line-height:1.5;border:1px solid #d6dae1;border-radius:999px;background:#fff;color:#475467;cursor:pointer;white-space:nowrap}.rate-basis button.active{background:#1A3A5C;border-color:#1A3A5C;color:#fff}.company-field{display:flex;align-items:center;gap:6px}.company-reset-chip{flex:0 0 auto;padding:2px 8px;font-size:12px;border:1px solid #1a3a5c;border-radius:12px;background:transparent;color:#1A3A5C;cursor:pointer;white-space:nowrap}@media (max-width:900px){header{padding:9px 12px}.app-view{flex-direction:column;height:auto;max-height:none;min-height:calc(100vh - 46px);overflow:visible}.app-gnb{width:100%;flex:none;min-height:0;position:static;flex-direction:row;padding:8px;overflow-x:auto}.app-gnb button{width:auto;white-space:nowrap;text-align:center}.app-main{padding:8px 12px 12px;overflow:visible}.admin-create-form{grid-template-columns:1fr}.industry-catalog-items{grid-template-columns:repeat(2,minmax(0,1fr))}.legend{margin-left:0}.admin-table{max-height:none}.myroom-table,.notice-table,.table-wrap{max-height:calc(100vh - 220px);flex:none}}@media (min-width:901px) and (max-height:720px){.app-view{height:auto;max-height:none;min-height:calc(100vh - 46px)}.app-main,.app-view{overflow:visible}.myroom-table,.notice-table,.table-wrap{max-height:calc(100vh - 220px);flex:none}}.myroom2{display:flex;flex-direction:column;min-height:0;flex:1 1 auto;overflow:hidden}.myroom2 .table-wrap[hidden],.myroom2[hidden]{display:none}.myroom2 .filter-bar label{font-size:12px;color:#666}.myroom2 .filter-bar input,.myroom2 .filter-bar select{font-size:13px;padding:6px 9px;min-height:0}.myroom2 .table-wrap{max-height:none;flex:1 1 auto;min-height:0;overflow:auto}.myroom2 table{font-size:15px;border-collapse:separate;border-spacing:0}.myroom2 td,.myroom2 th{padding:10px 12px}.myroom2 thead th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:#f8fafc;box-shadow:0 1px 0 #e2e5ea}.myroom2-pager{display:flex;gap:8px;margin:0 0 8px}.myroom2 td.myroom2-no,.myroom2 th.myroom2-no{width:56px;text-align:right;white-space:nowrap;color:#64748b}.myroom2-del{background:#fff;color:#b91c1c;border:1px solid #f1c4c4;border-radius:6px;padding:5px 10px;font-size:13px;font-weight:600;cursor:pointer}.myroom2-modal-back{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:80;display:flex;align-items:flex-start;justify-content:center;padding:48px 16px 24px;overflow:auto}.myroom2-modal{background:#fff;border-radius:12px;padding:18px 18px 16px;width:min(920px,100%);box-shadow:0 12px 40px rgba(0,0,0,.18)}.myroom2-modal h3{font-size:16px;margin-bottom:12px}.myroom2-modal-actions{display:flex;gap:8px;margin-top:14px}.myroom2-modal .ghost{background:#fff;color:#334155;border:1px solid #d6dae1}.past-pager{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid #e5e7eb;background:#f8fafc;font-size:13px}.past-pager button{padding:4px 12px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;cursor:pointer}.past-pager button:disabled{opacity:.45;cursor:default}.past-pager-note{margin-left:auto;color:#64748b}.admin-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100dvh - 60px);background:#f5f7fb}.collection-banner{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 28px;background:#f8fafc;border-bottom:1px solid #e2e8f0;color:#334155;font-size:13px}.collection-banner.is-running{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.collection-banner span,.collection-banner strong{display:block}.collection-banner span{margin-top:4px;font-size:12px}.collection-banner a{text-decoration:none}.collection-banner a,.collection-history button{background:#fff;color:#334155;border:1px solid #cbd5e1;border-radius:7px;padding:7px 11px;cursor:pointer;white-space:nowrap}.collection-history button:disabled{opacity:.45;cursor:default}.collection-history{min-width:0;color:#334155;font-size:13px}.collection-schedule{padding:16px 18px;border:1px solid #dbeafe;background:#f0f7ff;border-radius:10px;margin-bottom:20px}.collection-schedule p{margin:8px 0;line-height:1.7}.collection-help,.collection-schedule span{font-size:12px;color:#64748b;line-height:1.7}.collection-toolbar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:14px;margin-bottom:14px}.collection-toolbar label{display:grid;grid-gap:6px;gap:6px;font-size:12px}.collection-toolbar select{padding:8px 12px;min-width:150px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#334155}.collection-toolbar>span{margin-left:auto;padding-bottom:8px}.collection-table-wrap{overflow-x:auto;background:#fff;border:1px solid #e2e8f0;border-radius:9px;margin-top:12px}.collection-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.collection-table th{background:#f8fafc;font-weight:600;color:#64748b;white-space:nowrap}.collection-table td,.collection-table th{padding:12px 13px;border-bottom:1px solid #edf1f5}.collection-table td{white-space:nowrap}.collection-table tr:last-child td{border-bottom:0}.collection-table tr.selected{background:#f0f7ff}.collection-table code{font-size:11px}.collection-state{display:inline-block;padding:4px 8px;border-radius:99px;background:#f1f5f9;color:#475569;font-size:11px;white-space:nowrap}.collection-state-running{background:#dbeafe;color:#1d4ed8}.collection-state-succeeded{background:#dcfce7;color:#166534}.collection-state-partial{background:#fef3c7;color:#92400e}.collection-state-failed,.collection-state-interrupted{background:#fee2e2;color:#991b1b}.collection-pagination{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin:14px 0 24px}.collection-detail{background:#fff;border:1px solid #cbd5e1;border-radius:12px;padding:22px}.collection-detail-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.collection-detail h3{margin:0 0 10px;font-size:16px}.collection-detail h4{margin:24px 0 10px;font-size:14px}.collection-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:16px;gap:16px;padding:16px;background:#f8fafc;border-radius:8px;margin:20px 0}.collection-summary dt{font-size:11px;color:#64748b}.collection-summary dd{margin:6px 0 0;overflow-wrap:anywhere}.collection-logs{list-style:none;padding:0;margin:0;max-height:300px;overflow:auto;border:1px solid #e2e8f0;border-radius:8px}.collection-logs li{display:flex;gap:14px;padding:10px 12px;border-bottom:1px solid #edf1f5;line-height:1.6}.collection-logs time{flex-shrink:0;color:#64748b;font-size:11px}.collection-logs span{overflow-wrap:anywhere}.collection-error,.collection-logs .is-error{color:#b91c1c}@media(max-width:760px){.collection-banner{padding:12px 16px;align-items:start}.collection-summary{grid-template-columns:1fr 1fr}.collection-detail{padding:14px}.collection-logs li,.collection-logs time{display:block}}.admin-navigation{background:#fff;border-right:1px solid #e2e8f0;padding:26px 14px}.admin-nav-caption{display:block;color:#94a3b8;font-size:11px;font-weight:700;padding:0 12px 14px}.admin-navigation nav{display:grid;grid-gap:8px;gap:8px}.admin-navigation nav a{text-decoration:none;border:1px solid transparent;background:transparent;border-radius:9px;padding:13px 12px;text-align:left;cursor:pointer;color:#475569}.admin-navigation nav a span,.admin-navigation nav a strong{display:block}.admin-navigation nav a strong{font-size:14px}.admin-navigation nav a span{font-size:11px;margin-top:5px;color:#64748b}.admin-navigation nav a[aria-current=page]{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.admin-back-link{display:block;color:#64748b;font-size:12px;padding:24px 12px;text-decoration:none}.admin-content{padding:26px;min-width:0}.admin-page-heading{margin-bottom:22px}.admin-page-heading h2{font-size:23px;margin:0 0 7px;color:#0f172a}.admin-page-heading p{font-size:13px;color:#64748b}.admin-content .admin-master-detail{overflow:visible}.defense-layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);grid-gap:18px;gap:18px;align-items:start}.defense-card,.defense-list-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;min-width:0}.defense-list-card>input{width:100%;box-sizing:border-box}.defense-registry-list{max-height:650px;overflow-y:auto;margin-top:14px}.defense-agency-row{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;background:#fff;border:1px solid transparent;border-radius:8px;padding:12px 9px;text-align:left;cursor:pointer}.defense-agency-row:hover{background:#f8fafc}.defense-agency-row.selected{border-color:#93c5fd;background:#eff6ff}.defense-agency-row strong{font-size:13px;color:#334155;overflow-wrap:anywhere}.defense-agency-row small{display:block;color:#94a3b8;font-size:11px;margin-top:4px}.defense-label{flex-shrink:0;padding:4px 8px;border-radius:5px;font-size:11px;font-weight:700}.defense-label.military{color:#1d4ed8;background:#dbeafe}.defense-label.general{color:#475569;background:#f1f5f9}.defense-workspace{display:grid;grid-gap:16px;gap:16px;min-width:0}.defense-card h2{font-size:16px;color:#1e293b;margin-bottom:8px}.defense-card h3{font-size:13px;color:#475569;margin:22px 0 10px}.defense-muted{font-size:12px;line-height:1.7;color:#64748b;margin:7px 0}.defense-search{display:flex;gap:8px;margin-top:14px}.defense-form input:not([type=radio]),.defense-form textarea,.defense-search input{border:1px solid #cbd5e1;border-radius:7px;padding:10px;font-size:13px;min-width:0;background:#fff;color:#334155}.defense-search input{flex:1 1}.defense-save,.defense-search button{background:#2563eb;color:#fff;border:none;border-radius:7px;padding:10px 16px;font-weight:700;cursor:pointer;white-space:nowrap}.defense-search button.secondary{background:#f1f5f9;color:#475569}.defense-layout button:disabled{opacity:.5;cursor:default}.defense-manual{padding-top:14px;border-top:1px solid #f1f5f9}.defense-candidates{margin-top:12px;max-height:260px;overflow:auto}.defense-candidates button{display:flex;justify-content:space-between;gap:10px;width:100%;background:#fff;border:none;border-bottom:1px solid #f1f5f9;color:#334155;padding:10px 4px;font-size:12px;cursor:pointer;text-align:left}.defense-candidates small{color:#94a3b8}.defense-form{display:grid;grid-gap:14px;gap:14px}.defense-form>label{display:grid;grid-gap:7px;gap:7px;font-size:12px;font-weight:700;color:#475569}.defense-form textarea{min-height:80px;resize:vertical;font-family:inherit}.defense-form fieldset{border:none;padding:0;display:flex;gap:20px}.defense-form legend{font-size:12px;font-weight:700;color:#475569;margin-bottom:10px}.defense-form fieldset label{display:flex;align-items:center;gap:7px;font-size:13px}.defense-impact{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:14px;display:grid;grid-gap:6px;gap:6px;color:#334155;font-size:14px}.defense-impact span{font-size:12px;color:#64748b}.defense-save{justify-self:start}.defense-message{padding:12px 16px;background:#eff6ff;color:#1e40af;border-radius:8px;font-size:13px}.defense-empty{padding:48px 20px;color:#94a3b8;font-size:13px;text-align:center;border:1px dashed #cbd5e1;border-radius:12px}.defense-table-wrap{overflow-x:auto}.defense-table{width:100%;border-collapse:collapse;font-size:12px}.defense-table td,.defense-table th{text-align:left;padding:10px 8px;border-bottom:1px solid #e2e8f0}.defense-table th{color:#64748b;background:#f8fafc}.defense-table td{color:#334155}.defense-table td:first-child,.defense-table th:first-child{white-space:nowrap}.defense-history{list-style:none;padding:0}.defense-history li{padding:10px 0;border-bottom:1px solid #f1f5f9;font-size:12px;color:#475569}.defense-history small{display:block;margin-top:5px;color:#94a3b8}@media (max-width:1100px){.admin-shell{grid-template-columns:180px minmax(0,1fr)}.admin-content{padding:20px}.defense-layout{grid-template-columns:260px minmax(0,1fr)}.admin-content .admin-master-detail{grid-template-columns:1fr}}@media (max-width:760px){.admin-shell{grid-template-columns:1fr}.admin-navigation{padding:12px;border-right:none;border-bottom:1px solid #e2e8f0}.admin-navigation nav{grid-template-columns:1fr 1fr}.admin-back-link,.admin-nav-caption{display:none}.admin-content{padding:16px}.defense-layout{grid-template-columns:1fr}.defense-registry-list{max-height:230px}}.admin-explanation{background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;padding:16px 18px;margin-bottom:18px;color:#334155;font-size:13px;line-height:1.7}.admin-cell-explanation summary,.admin-explanation summary{cursor:pointer;font-weight:600}.admin-explanation[open] summary{margin-bottom:10px}.admin-explanation strong{color:#0f172a}.admin-explanation p{margin:8px 0 0}.admin-cell-description{max-width:380px;white-space:normal;line-height:1.65;margin:8px 0;font-size:13px}.admin-source-details{margin-top:10px;font-size:12px;color:#64748b}.admin-source-details summary{cursor:pointer;color:#1d4ed8}.admin-source-details p{max-width:380px;white-space:normal;line-height:1.6}.admin-source-details pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:420px}.admin-review-table{overflow-x:auto;margin-top:14px}.admin-review-table table{min-width:850px}.admin-review-table td,.admin-review-table th{text-align:left}.admin-review-table td{vertical-align:top;white-space:normal}.admin-license-row{margin-bottom:10px}.admin-content .admin-toolbar{flex-wrap:wrap}.query-spinner{display:inline-block;width:1em;height:1em;margin-right:.5em;vertical-align:-.15em;border:2px solid #d1d5db;border-top-color:#2563eb;border-radius:50%;animation:query-spin .8s linear infinite}@keyframes query-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.query-spinner{animation:none}}.collection-history .received-count{color:#1d4ed8;border-color:#bfdbfe}.received-count span{font-size:11px}.received-rows{min-width:0}.received-rows .collection-toolbar select{max-width:100%}.received-rows .collection-toolbar label{min-width:0;max-width:100%}.received-rows .collection-table code{overflow-wrap:anywhere;white-space:normal}.received-row-json{width:min(1000px,calc(100vw - 40px));max-width:calc(100vw - 40px);max-height:calc(100dvh - 40px);min-width:0;box-sizing:border-box;padding:24px;margin:auto;overflow:auto;border:1px solid #cbd5e1;border-radius:12px;background:#fff;color:#334155;box-shadow:0 24px 80px #0f172a40}.received-row-json::-webkit-backdrop{background:#0f172a80}.received-row-json::backdrop{background:#0f172a80}.received-row-json h4{overflow-wrap:anywhere}.received-row-json pre{max-height:480px;max-width:100%;overflow:auto;padding:16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.collection-workspace{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;grid-gap:20px;gap:20px}.collection-detail-column,.collection-list{min-width:0}.collection-list{padding:18px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}.collection-list>h3{margin:0 0 18px;font-size:16px}.collection-detail-column{display:grid;grid-gap:20px;gap:20px}.collection-detail-empty{min-height:220px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#64748b}.received-row-json .collection-detail-title h4{margin:0}.received-row-json pre{max-height:65dvh}@media(max-width:1100px){.collection-workspace{grid-template-columns:1fr}}@media(max-width:760px){.collection-list{padding:14px}.received-row-json{padding:16px;width:calc(100vw - 24px);max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}}.collection-detail-column>.collection-detail{min-width:0}.collection-run-list{display:grid;grid-gap:10px;gap:10px;max-height:640px;overflow:auto}.collection-run-card{border:1px solid #e2e8f0;border-radius:9px;padding:14px}.collection-run-card.selected{background:#f0f7ff;border-color:#93c5fd}.collection-run-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.collection-history .collection-run-select{padding:0;border:0;background:transparent;white-space:normal;text-align:left;display:grid;grid-gap:6px;gap:6px;color:#1e3a5f}.collection-run-select strong{font-size:14px;text-decoration:underline;text-underline-offset:3px}.collection-run-select time{font-size:11px;color:#64748b}.collection-run-metrics{display:grid;grid-template-columns:1fr 1.3fr;grid-gap:12px;gap:12px;margin:14px 0 0}.collection-run-metrics dt{font-size:11px;color:#64748b}.collection-run-metrics dd{margin:5px 0 0}.collection-failures{min-width:0;margin:24px 0;padding:16px;border:1px solid #fcd34d;border-radius:10px;background:#fffbeb}.collection-failures .collection-detail-title h4{margin:0}.collection-failures .collection-table td{white-space:normal;min-width:100px;overflow-wrap:anywhere;vertical-align:top}.collection-failures .collection-table td:nth-child(4){min-width:240px}.collection-failures pre{white-space:pre;overflow-wrap:normal;text-align:left;max-height:240px;max-width:320px;overflow:auto;font-size:11px}.collection-failures summary{cursor:pointer;color:#1d4ed8}.collection-failure-summary{padding:12px;background:#fff;border-radius:8px;color:#92400e}.collection-failure-summary p{margin:8px 0}.collection-failure-badge{display:block;margin-top:6px;font-size:11px;color:#b45309;white-space:nowrap}.collection-failures .collection-table-wrap{max-height:520px;overflow:auto}.collection-failures .collection-table th{position:-webkit-sticky;position:sticky;top:0;z-index:1}