:root{color:#18202b;font-synthesis:none;text-rendering:optimizelegibility;background:#f4f6f8;font-family:Inter,Pretendard,Noto Sans KR,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}.app-shell{grid-template-columns:250px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#fff;background:#111827;padding:22px 16px;overflow-y:auto}.brand{border-bottom:1px solid #ffffff1f;align-items:center;gap:12px;padding:0 8px 22px;display:flex}.brand-mark{color:#111827;background:#fff;border-radius:12px;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.brand strong,.brand small{display:block}.brand small{color:#9ca3af;margin-top:3px}nav{padding-top:16px}.nav-group{margin-top:20px}.nav-group p{color:#9ca3af;letter-spacing:.06em;text-transform:uppercase;margin:0 10px 6px;font-size:12px;font-weight:700}.nav-group-toggle{color:#9ca3af;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;width:100%;margin:0 0 6px;padding:4px 10px;font-size:12px;font-weight:700;display:flex}.nav-group-toggle:hover{color:#e5e7eb}.nav-group-toggle em{letter-spacing:0;font-size:11px;font-style:normal}.nav-item{color:#d1d5db;text-align:left;background:0 0;border:0;border-radius:8px;width:100%;padding:9px 11px}.nav-item:hover{color:#fff;background:#ffffff12}.nav-item.active{color:#111827;background:#fff;font-weight:700}main{min-width:0}.topbar{z-index:5;background:#fff;border-bottom:1px solid #e5e7eb;align-items:center;gap:14px;height:68px;padding:0 26px;display:flex;position:sticky;top:0}.topbar>div{flex:1}.topbar strong{display:block}.menu-button{background:0 0;border:0;font-size:22px;display:none}.content{max-width:1600px;margin:0 auto;padding:30px}.page-heading{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px;display:flex}.page-heading h2{margin:3px 0 8px;font-size:28px}.page-heading p{color:#6b7280;margin:0}.eyebrow{letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:800;color:#2563eb!important}.primary-button,.secondary-button,.table-button,.text-button{border:1px solid #0000;border-radius:8px;padding:9px 14px;font-weight:700}.primary-button{color:#fff;background:#111827}.primary-button:hover{background:#1f2937}.secondary-button{color:#374151;background:#fff;border-color:#d1d5db}.table-button{color:#1d4ed8;background:#eff6ff;padding:6px 10px}.text-button{color:#4b5563;background:0 0;padding:4px 8px}.dashboard-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.metric-card{text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:18px}.metric-card:not(:disabled):hover{border-color:#9ca3af;transform:translateY(-1px)}.metric-card span,.metric-card small{color:#6b7280;display:block}.metric-card strong{margin:10px 0 6px;font-size:30px;display:block}.overview-panels{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:22px;display:grid}.panel{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:20px}.panel h3{margin-top:0}.panel li{color:#4b5563;margin:8px 0}.toolbar{align-items:center;gap:10px;margin-bottom:14px;display:flex}.toolbar label:not(.toggle-deleted){flex:1;max-width:520px}.toolbar .toggle-deleted{flex:none}.toolbar input{background:#fff;border:1px solid #d1d5db;border-radius:9px;width:100%;padding:10px 12px}.result-count{color:#6b7280;margin-left:auto;font-size:13px}.notice{border-radius:9px;margin-bottom:14px;padding:11px 13px}.notice-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.notice-success{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.loading{color:#6b7280;padding:18px}.form-panel{background:#fff;border:1px solid #cbd5e1;border-radius:14px;margin-bottom:18px;padding:20px}.form-panel-heading{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.form-panel-heading h3{margin:0}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-field{gap:6px;min-width:0;display:grid}.form-field-full{grid-column:1/-1}.form-field>span{color:#374151;font-size:13px;font-weight:700}.form-field em{color:#dc2626;font-style:normal}.form-field input,.form-field select,.form-field textarea{color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:8px;width:100%;min-width:0;padding:10px 11px}.form-field textarea{resize:vertical}.form-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.table-wrap{background:#fff;border:1px solid #e5e7eb;border-radius:12px;width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:860px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #eef0f3;padding:12px 13px;font-size:13px}th{color:#475569;white-space:nowrap;background:#f8fafc;font-weight:800}td{color:#334155;max-width:360px}tbody tr:hover{background:#fafafa}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=1100px){.dashboard-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=800px){.app-shell{display:block}.sidebar{z-index:20;width:270px;transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar-open{transform:translate(0)}.menu-button{display:inline-block}.content{padding:20px 14px}.page-heading{flex-direction:column}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-panels,.form-grid{grid-template-columns:1fr}.form-field-full{grid-column:auto}}@media (width<=480px){.topbar{padding:0 12px}.dashboard-grid{grid-template-columns:1fr}.toolbar{flex-wrap:wrap}.toolbar label{flex-basis:100%}.result-count{margin-left:0}}.topbar-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.topbar-actions .user-badge{margin:0;display:inline-flex}.user-badge{color:#3730a3;background:#eef2ff;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}.toolbar select{color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:9px;padding:9px 10px}.pagination{justify-content:center;align-items:center;gap:12px;margin-top:16px;display:flex}.pagination span{color:#4b5563;font-size:13px}.login-screen,.loading-screen{background:#f4f6f8;place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{text-align:center;background:#fff;border:1px solid #e5e7eb;border-radius:16px;width:min(440px,100%);padding:28px}.login-card .brand-mark{margin:0 auto 16px}.login-card h1{margin:0 0 10px}.login-card p{color:#6b7280;margin:0 0 20px}.login-hint{color:#6b7280;background:#f8fafc;border:1px solid #e5e7eb;border-radius:9px;margin:-8px 0 18px;padding:10px 12px;font-size:13px;line-height:1.5}.login-hint strong{color:#374151}.login-form{text-align:left;gap:14px;margin-bottom:12px;display:grid}.login-form label{gap:6px;display:grid}.login-form label span{color:#374151;font-size:13px;font-weight:600}.login-form input{border:1px solid #d1d5db;border-radius:9px;width:100%;padding:10px 12px;font-size:15px}.login-form input:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb26}.login-form .primary-button{width:100%;margin-top:4px;padding:11px;font-size:15px}.notice-info{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe}@media (width<=800px){.topbar-actions .user-badge{display:none}}.form-panel-heading>div{min-width:0}.form-panel-heading p{color:#64748b;margin:5px 0 0;font-size:13px}.form-sections{gap:16px;display:grid}.form-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:16px}.form-section h4{color:#1e293b;border-bottom:1px solid #e2e8f0;margin:0 0 14px;padding-bottom:10px;font-size:15px}.form-section .form-field input,.form-section .form-field select,.form-section .form-field textarea{background:#fff}.segmented-field{border:0;min-width:0;margin:0;padding:0}.segmented-field legend{color:#374151;margin-bottom:6px;padding:0;font-size:13px;font-weight:700}.segmented-field em{color:#dc2626;font-style:normal}.segmented-control{background:#fff;border:1px solid #d1d5db;border-radius:9px;width:100%;min-height:42px;padding:3px;display:flex}.segmented-control button{color:#64748b;background:0 0;border:0;border-radius:6px;flex:1;padding:8px 10px;font-weight:700}.segmented-control button:hover{color:#1e293b;background:#f1f5f9}.segmented-control button.selected{color:#fff;background:#111827;box-shadow:0 1px 2px #0f172a2e}.table-actions{white-space:nowrap;gap:6px;display:flex}.danger-button{color:#be123c;background:#fff1f2}.danger-button:hover{background:#ffe4e6}.delete-button{color:#fff;background:#be123c;border:1px solid #be123c;border-radius:8px;padding:9px 14px;font-weight:800}.delete-button:hover{background:#9f1239}.modal-backdrop{z-index:50;background:#0f172a85;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-modal{background:#fff;border-radius:16px;width:min(460px,100%);padding:24px;box-shadow:0 22px 55px #0f172a47}.warning-icon{color:#be123c;background:#fff1f2;border-radius:999px;place-items:center;width:38px;height:38px;font-size:22px;font-weight:900;display:grid}.confirm-modal h3{margin:14px 0 8px}.confirm-modal p{color:#475569;margin:7px 0}.confirm-modal .modal-help{color:#64748b;background:#f8fafc;border-radius:9px;margin-top:14px;padding:11px 12px;font-size:13px;line-height:1.55}.status-chip{white-space:nowrap;color:#475569;background:#f1f5f9;border-radius:999px;align-items:center;padding:4px 9px;font-size:12px;font-weight:700;display:inline-flex}.status-chip-DRAFT{color:#475569;background:#f1f5f9}.status-chip-SUBMITTED{color:#1d4ed8;background:#eff6ff}.status-chip-REVIEWING{color:#92400e;background:#fef3c7}.status-chip-REVISION_REQUESTED{color:#c2410c;background:#ffedd5}.status-chip-APPROVED{color:#166534;background:#dcfce7}.status-chip-REJECTED{color:#991b1b;background:#fee2e2}.status-chip-follow-up-PENDING{color:#5b21b6;background:#ede9fe}.status-chip-follow-up-REVISION_REQUESTED{color:#c2410c;background:#ffedd5}.review-note{color:#b45309;max-width:240px;margin-top:5px;font-size:12px;display:block}.workflow-button{color:#15803d;background:#f0fdf4}.workflow-button:hover{background:#dcfce7}.report-toolbar label{flex:none;align-items:center;gap:6px;display:inline-flex}.report-toolbar label span{color:#475569;white-space:nowrap;font-size:13px}.report-toolbar input{background:#fff;border:1px solid #d1d5db;border-radius:9px;padding:9px 10px}.report-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:8px;display:grid}.waking-badge{color:#92400e;white-space:nowrap;background:#fef3c7;border-radius:999px;align-items:center;padding:6px 10px;font-size:12px;font-weight:700;display:inline-flex}.loading-screen{text-align:center;color:#475569;padding:24px;line-height:1.7}.target-hint{color:#94a3b8;font-weight:400}.target-input{border:1px solid #d1d5db;border-radius:8px;width:88px;padding:7px 9px}.batch-size{color:#6b7280;align-items:center;gap:6px;font-size:13px;display:inline-flex}.batch-size input{border:1px solid #d1d5db;border-radius:8px;width:72px;padding:6px 8px}.share-cell{color:#64748b;white-space:nowrap;font-size:13px}.score-badge{color:#fff;text-align:center;background:#111827;border-radius:8px;min-width:52px;padding:5px 10px;font-weight:800;display:inline-block}.score-value{color:#0f172a;font-weight:800}.breakdown-cell{color:#64748b;min-width:180px;font-size:12px}.row-selected{background:#eff6ff}.row-selected:hover{background:#dbeafe}.metric-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.metric-list>div{background:#f8fafc;border:1px solid #eef0f3;border-radius:10px;padding:10px 12px}.metric-list dt{color:#64748b;margin-bottom:4px;font-size:12px}.metric-list dd{color:#0f172a;margin:0;font-size:22px;font-weight:800}.metric-list dd small{color:#64748b;margin-left:3px;font-size:12px;font-weight:600}@media (width<=1100px){.report-groups{grid-template-columns:1fr}}.usage-list{border:1px solid #fecaca;border-radius:9px;margin:12px 0;padding:0;list-style:none;overflow:hidden}.usage-list li{background:#fff7f7;border-bottom:1px solid #fee2e2;justify-content:space-between;padding:9px 12px;font-size:13px;display:flex}.usage-list li:last-child{border-bottom:0}.usage-list strong{color:#be123c}.toggle-deleted{color:#475569;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:9px;align-items:center;gap:6px;padding:9px 10px;font-size:13px;display:inline-flex}.toggle-deleted:hover{border-color:#cbd5e1}.toggle-deleted input{margin:0}.inactive-row{opacity:.55}.upload-panel{background:#fff;border:1px dashed #cbd5e1;border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;padding:16px;display:flex}.upload-panel span{color:#64748b;font-size:13px}.import-sheet{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:14px;padding:16px}.import-sheet header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:10px;display:flex}.import-sheet h3{margin:0 0 4px;font-size:16px}.import-sheet header p{color:#64748b;margin:0;font-size:13px}.import-summary{flex-wrap:wrap;gap:8px;margin-bottom:10px;font-size:13px;display:flex}.import-summary span{color:#475569;background:#f1f5f9;border-radius:999px;padding:4px 10px;font-weight:700}.import-summary .ok{color:#166534;background:#dcfce7}.import-summary .warn{color:#92400e;background:#fef3c7}.import-summary .dup{color:#1d4ed8;background:#eff6ff}.import-summary .err{color:#991b1b;background:#fee2e2}.import-summary .applied{color:#fff;background:#111827}.import-problems table{min-width:520px}.select-list{background:#fff;border:1px solid #e5e7eb;border-radius:10px;max-height:320px;padding:8px;overflow-y:auto}.select-item{cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.select-item:hover{background:#f8fafc}.select-item small{color:#6b7280}.section-title{margin:26px 0 12px;font-size:17px}.skip-text{color:#94a3b8;font-size:13px}.tab-bar{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.tab{color:#475569;background:#fff;border:1px solid #d1d5db;border-radius:999px;padding:8px 16px;font-weight:700}.tab.active{color:#fff;background:#111827;border-color:#111827}.merge-group{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:12px;padding:16px}.merge-group header{justify-content:space-between;align-items:center;gap:12px;display:flex}.merge-group h4{margin:0}.lookup-bar{background:#eff6ff;border:1px dashed #93c5fd;border-radius:10px;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;padding:12px 14px;display:flex}.lookup-bar p{color:#1e40af;margin:0;font-size:13px}.lookup-bar button{flex:none}.lookup-bar-stacked{flex-direction:column;align-items:stretch}.lookup-input{align-items:flex-end;gap:8px;display:flex}.lookup-input label{flex-direction:column;gap:4px;margin:0;display:flex}.lookup-input label span{color:#1e40af;font-size:12px;font-weight:700}.lookup-input input{background:#fff;border:1px solid #93c5fd;border-radius:8px;min-width:240px;padding:8px 10px;font-size:14px}@media (width<=720px){.lookup-bar,.lookup-input{flex-direction:column;align-items:stretch}.lookup-input input{min-width:0}}.lookup-info{color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;gap:4px;margin-bottom:12px;padding:11px 13px;font-size:13px;display:grid}.lookup-info strong{color:#0f172a;margin-right:6px}.lookup-badge{color:#166534;background:#dcfce7;border-radius:999px;margin-left:6px;padding:2px 7px;font-size:11px;font-weight:700}.temp-password-panel{color:#78350f;background:#fffbeb;border:1px solid #fbbf24;border-radius:10px;gap:6px;margin-bottom:14px;padding:14px 16px;display:grid}.temp-password-panel code{letter-spacing:.03em;-webkit-user-select:all;user-select:all;background:#fff;border:1px solid #fcd34d;border-radius:8px;width:fit-content;padding:8px 12px;font-size:18px;font-weight:800}.temp-password-panel small{color:#92400e}.search-picker{align-items:stretch;gap:6px;min-width:0;display:flex}.search-picker-value{text-align:left;background:#fff;border:1px solid #d1d5db;border-radius:8px;flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;padding:8px 11px;font-weight:400;display:flex}.search-picker-value:hover{border-color:#9ca3af}.search-picker-value strong{color:#111827;font-size:14px}.search-picker-value small{color:#6b7280;font-size:12px}.search-picker-placeholder{color:#9ca3af}.search-picker-clear{color:#6b7280;background:#fff;border:1px solid #d1d5db;border-radius:8px;flex:none;padding:0 10px;font-size:16px}.search-picker-clear:hover{color:#be123c;border-color:#fda4af}.search-modal{background:#fff;border-radius:16px;width:min(560px,100%);max-height:min(640px,90vh);padding:22px;overflow-y:auto;box-shadow:0 22px 55px #0f172a47}.search-modal-bar{gap:8px;margin-bottom:12px;display:flex}.search-modal-bar input{border:1px solid #d1d5db;border-radius:9px;flex:1;padding:10px 12px}.search-results{gap:6px;display:grid}.search-result{text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:9px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.search-result:hover{background:#eff6ff;border-color:#2563eb}.search-result small{color:#6b7280;font-size:12px}.search-hint{color:#6b7280;margin:6px 0;font-size:13px}.field-hint{color:#6b7280;font-size:12px;line-height:1.4}.attachment-modal{text-align:left;max-width:560px}.attachment-section{gap:8px;margin-top:16px;display:grid}.attachment-section h4{margin:0 0 6px}.attachment-section .search-hint{margin:0}.attachment-warning{color:#b45309}.attachment-list{gap:6px;margin:4px 0 0;padding:0;list-style:none;display:grid}.attachment-list li{background:#fff;border:1px solid #e5e7eb;border-radius:6px;align-items:center;gap:10px;padding:6px 10px;display:flex}.attachment-file{flex:1;gap:1px;min-width:0;display:grid}.attachment-file>a,.attachment-file>span:first-child{word-break:break-all;font-size:13px;font-weight:600}.attachment-meta{color:#6b7280;font-size:11px}.attachment-mark{color:#166534;font-weight:700}.attachment-actions{align-items:center;gap:10px;margin-top:4px;display:flex}.search-create{border-top:1px solid #e5e7eb;margin-top:14px;padding-top:14px}.search-create h4{margin:0 0 6px}.search-create-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.search-create-grid label{gap:5px;display:grid}.search-create-grid span{color:#374151;font-size:13px;font-weight:700}.search-create-grid em{color:#dc2626;font-style:normal}.search-create-grid input{border:1px solid #d1d5db;border-radius:8px;padding:9px 10px}.search-create-toggle{color:#2563eb;margin-top:12px;font-weight:700}.select-cell{text-align:center;width:40px}.select-cell input{cursor:pointer;margin:0}.select-cell input:disabled{cursor:not-allowed;opacity:.35}.lab-account-empty{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.lab-account-empty .search-hint{margin:0}.history-heading{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.history-heading h4{margin:0}.deletion-plan{text-align:left;gap:14px;margin:4px 0 6px;display:grid}.plan-section h4{color:#374151;margin:0 0 6px;font-size:13px}.plan-blocked h4{color:#b91c1c}.plan-warning{color:#b45309}.confirm-check{text-align:left;color:#374151;align-items:flex-start;gap:8px;margin:4px 0 12px;font-size:13px;display:flex}.confirm-check input{margin-top:2px}.status-panel{background:#fff;border:1px solid #e5e7eb;border-left-width:4px;border-radius:12px;margin-top:18px;padding:16px 18px}.status-panel h3{align-items:baseline;gap:8px;margin:0 0 4px;font-size:15px;display:flex}.status-panel .search-hint{margin:0 0 12px}.status-panel-count{font-size:13px;font-weight:700}.status-panel-warn{background:#fffbeb;border-left-color:#f59e0b}.status-panel-warn .status-panel-count{color:#b45309}.status-panel-good{border-left-color:#16a34a}.status-panel-good .status-panel-count{color:#15803d}.status-panel-info{border-left-color:#cbd5e1}.status-panel-info .status-panel-count{color:#475569}.review-queue{background:#fff;border:1px solid #e5e7eb;border-radius:14px;margin-top:22px;padding:18px}.review-queue h3{margin:0 0 4px;font-size:16px}.review-queue .search-hint{margin:0 0 14px}.review-queue-list{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;display:grid}.review-queue-item{text-align:left;background:#fffbeb;border:1px solid #fcd34d;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;display:flex}.review-queue-item:hover{background:#fef3c7;border-color:#d97706}.review-queue-item span{color:#374151;font-size:13px}.review-queue-item strong{color:#b45309;font-size:20px}.review-queue-item small{color:#92400e;font-size:12px}.request-count{color:#1d4ed8;background:#eff6ff;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-block}.search-pending{background:#fffbeb;border:1px solid #fcd34d;border-radius:10px;gap:6px;margin-top:8px;padding:12px;display:grid}.search-pending .search-hint{margin:0}.search-pending .search-result{background:#fff;border-color:#fcd34d}.search-pending .search-result:hover{background:#fef3c7;border-color:#d97706}.search-empty-action{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;justify-items:start;gap:8px;margin-top:8px;padding:12px;display:grid}.search-empty-action .search-hint{margin:0}.search-picker-value.pending{background:#fffbeb;border-color:#f59e0b}.search-picker-value.pending strong{color:#92400e}.search-picker-value.pending small{color:#b45309}.request-target{color:#3730a3;background:#eef2ff;border-radius:999px;flex:none;padding:3px 9px;font-size:12px;font-weight:700}.clickable-row{cursor:pointer}.clickable-row:hover>td{background:#f8fafc}.clickable-row:focus-visible{outline-offset:-2px;outline:2px solid #2563eb}.detail-modal{background:#fff;border-radius:16px;width:min(680px,100%);max-height:min(720px,90vh);padding:22px;overflow-y:auto;box-shadow:0 22px 55px #0f172a47}.detail-modal .form-panel-heading h3{word-break:break-word;margin:0}.detail-group+.detail-group{margin-top:18px}.detail-group h4{color:#64748b;margin:0 0 8px;font-size:13px;font-weight:700}.detail-list{background:#e5e7eb;border:1px solid #e5e7eb;border-radius:10px;gap:1px;margin:0;display:grid;overflow:hidden}.detail-row{background:#fff;grid-template-columns:minmax(120px,200px) 1fr;gap:12px;padding:10px 13px;display:grid}.detail-row dt{color:#475569;margin:0;font-size:13px;font-weight:700}.detail-row dd{color:#111827;word-break:break-word;white-space:pre-wrap;margin:0;font-size:14px}@media (width<=640px){.detail-row{grid-template-columns:1fr;gap:2px}}.author-totals{color:#475569;margin:0 0 10px;font-size:13px}.author-totals strong{color:#111827}.author-row{border-top:1px solid #f1f5f9;grid-template-columns:auto 1fr auto;align-items:start;gap:10px;padding:10px 0;display:grid}.author-row:first-of-type{border-top:none}.author-order{align-items:flex-start;padding-top:18px;display:flex}.author-order>span{color:#64748b;text-align:center;min-width:20px;font-size:13px;font-weight:700}.author-cells{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;min-width:0;display:grid}.author-cells .author-name{grid-column:span 2}.author-external{color:#94a3b8;white-space:nowrap;font-size:12px}.author-linked{color:#166534;white-space:nowrap;font-size:12px;font-weight:700}.author-table{font-size:13px}.author-table th{white-space:nowrap}@media (width<=640px){.author-cells .author-name{grid-column:span 1}}.relation-field{background:#fff;border:1px solid #e2e8f0;border-radius:10px;margin:0;padding:12px}.relation-field legend{color:#374151;padding:0 4px;font-size:13px;font-weight:700}.relation-empty{color:#94a3b8;margin:4px 0 10px;font-size:13px}.relation-row{background:#f8fafc;border:1px solid #eef0f3;border-radius:9px;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:8px;padding:10px;display:flex}.relation-cell{flex:180px;gap:6px;min-width:150px;display:grid}.relation-cell>span{color:#374151;font-size:13px;font-weight:700}.relation-cell input,.relation-cell select{color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:10px 11px}.relation-remove{flex:none;margin-bottom:2px}.relation-add{margin-top:4px}@media (width<=800px){.form-section{padding:14px}.segmented-control{flex-wrap:wrap}.segmented-control button{min-width:90px}.relation-row{flex-direction:column;align-items:stretch}.relation-remove{align-self:flex-end}}.viz-root{--viz-education:#2a78d6;--viz-research:#eb6834;--viz-industry:#1baf7a;--viz-good:#0ca30c;--viz-warning:#fab219;--viz-critical:#d03b3b;--viz-grid:#e5e7eb;--viz-axis:#94a3b8;--viz-surface:#fff}.demo-banner{color:#475569;background:#f8fafc;border:1px dashed #cbd5e1;border-left:4px solid #64748b;border-radius:10px;margin:0 0 16px;padding:12px 14px;font-size:13px;line-height:1.65}.demo-banner em{color:#334155;font-style:normal;font-weight:700}.demo-footnote{color:#94a3b8;margin:20px 0 8px;font-size:12px;line-height:1.7}.demo-toolbar{align-items:flex-start;gap:22px}.demo-filter{gap:6px;display:grid}.demo-filter>span{color:#64748b;font-size:12px;font-weight:700}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.chip{color:#334155;background:#fff;border:1px solid #d1d5db;border-radius:999px;padding:6px 13px;font-size:13px;font-weight:600}.chip:hover{border-color:#94a3b8}.chip.active{color:#fff;background:#111827;border-color:#111827}.weight-panel{background:#fff;border:1px solid #e5e7eb;border-radius:14px;margin:16px 0 4px;padding:16px 18px}.weight-panel-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.weight-panel-head strong{font-size:14px}.weight-panel-head span{color:#64748b;font-size:13px;font-weight:700}.weight-sliders{gap:10px;display:grid}.weight-slider{grid-template-columns:150px minmax(0,1fr) 52px;align-items:center;gap:12px;display:grid}.weight-name{color:#334155;align-items:center;gap:7px;font-size:13px;font-weight:700;display:flex}.weight-slider input{accent-color:#111827;width:100%}.weight-slider output{color:#0f172a;text-align:right;font-variant-numeric:tabular-nums;font-size:13px;font-weight:800}.weight-note{color:#64748b;margin:12px 0 0;font-size:12px;line-height:1.7}.swatch{border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.swatch-education{background:var(--viz-education)}.swatch-research{background:var(--viz-research)}.swatch-industry{background:var(--viz-industry)}.viz-legend{color:#475569;flex-wrap:wrap;gap:16px;margin:10px 0 12px;font-size:13px;display:flex}.viz-legend span{align-items:center;gap:7px;display:inline-flex}.viz-legend small{color:#94a3b8;font-weight:600}.bar-panel{gap:12px;margin-bottom:14px;display:grid}.bar-row{grid-template-columns:108px minmax(0,1fr) 52px;align-items:center;gap:12px;display:grid}.bar-name{color:#0f172a;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.bar-rank{color:#64748b;background:#f1f5f9;border-radius:6px;place-items:center;width:20px;height:20px;font-size:11px;font-weight:800;display:grid}.bar-track{height:22px;display:flex}.bar-seg{border:0;flex:none;height:100%;position:relative}.bar-seg+.bar-seg{margin-left:2px}.bar-seg:last-child{border-radius:0 4px 4px 0}.bar-seg:focus-visible{outline-offset:2px;outline:2px solid #111827}.seg-education{background:var(--viz-education)}.seg-research{background:var(--viz-research)}.seg-industry{background:var(--viz-industry)}.bar-total{color:#0f172a;text-align:right;font-variant-numeric:tabular-nums;font-size:13px;font-weight:800}.viz-tip{color:#fff;white-space:nowrap;z-index:5;pointer-events:none;background:#0f172a;border-radius:8px;gap:2px;padding:7px 10px;display:grid;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.viz-tip strong{font-size:13px}.viz-tip em{color:#cbd5e1;font-size:11px;font-style:normal}.meter-list{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;display:grid}.meter-card{gap:10px;display:grid}.meter-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.meter-figure{color:#0f172a;font-size:30px;font-weight:800;line-height:1.15}.meter-figure small{color:#64748b;margin-top:4px;font-size:12px;font-weight:600;display:block}.meter-track{border-radius:6px;height:12px;position:relative;overflow:hidden}.meter-fill{border-radius:6px 4px 4px 6px;height:100%}.meter-goal{background:#64748b;width:2px;height:100%;position:absolute;top:0;right:0}.meter-good{background:color-mix(in srgb, var(--viz-good) 16%, #fff)}.meter-good .meter-fill{background:var(--viz-good)}.meter-warning{background:color-mix(in srgb, var(--viz-warning) 20%, #fff)}.meter-warning .meter-fill{background:var(--viz-warning)}.meter-critical{background:color-mix(in srgb, var(--viz-critical) 14%, #fff)}.meter-critical .meter-fill{background:var(--viz-critical)}.meter-gap{color:#64748b;margin:0;font-size:12px}.status-chip{border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:700;display:inline-flex}.status-chip i{font-size:9px;font-style:normal}.status-good{color:#14670f;background:#eaf7ea}.status-warning{color:#7a5300;background:#fdf3dc}.status-critical{color:#8f1f1f;background:#fbeaea}.chart-panel{gap:12px;display:grid}.chart-panel svg{width:100%;height:auto}.chart-panel .grid{stroke:var(--viz-grid);stroke-width:1px}.chart-panel .axis{fill:var(--viz-axis);font-size:11px}.chart-panel .axis-active{fill:#0f172a;font-weight:800}.chart-panel .goal-line{stroke:#94a3b8;stroke-width:1.5px;stroke-dasharray:5 4}.chart-panel .goal-label{fill:#64748b;font-weight:700}.trend-line{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.line-education{stroke:var(--viz-education)}.line-research{stroke:var(--viz-research)}.line-industry{stroke:var(--viz-industry)}.trend-dot{stroke:var(--viz-surface);stroke-width:2px}.dot-education{fill:var(--viz-education)}.dot-research{fill:var(--viz-research)}.dot-industry{fill:var(--viz-industry)}.trend-hit{fill:#0000;cursor:pointer}.trend-hit:focus-visible{outline:2px solid #111827}.trend-label{fill:#475569;font-size:11px;font-weight:800}.trend-tip rect{fill:#0f172a}.trend-tip .tip-value{fill:#fff;font-size:12px;font-weight:800}.trend-tip .tip-label{fill:#cbd5e1;font-size:10px}.trend-table{min-width:520px}@media (width<=720px){.weight-slider{grid-template-columns:1fr;gap:4px}.weight-slider output{text-align:left}.bar-row{grid-template-columns:92px minmax(0,1fr) 46px}}
