:root{--bg:#f4f7f9;--card:#fff;--text:#16212c;--muted:#6c7a89;--line:#dfe7ec;--nav:#0f1820;--nav2:#182630;--accent:#176b74;--accent-soft:#dceff0;--danger:#a43b3b;--danger-soft:#fde6e6;--warn:#8b6500;--warn-soft:#fff2ce;--ok:#2c7250;--ok-soft:#e2f3e9;--blue:#3c6488;--blue-soft:#e5eef8;--shadow:0 8px 24px rgba(15,28,40,.06)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Pretendard,"Noto Sans KR",Arial,sans-serif;background:var(--bg);color:var(--text)}a{text-decoration:none;color:inherit}.app-shell{display:grid;grid-template-columns:258px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--nav),#101c25);color:#dbe4e9;padding:26px 20px}.brand-wrap{display:flex;gap:12px;align-items:center;margin-bottom:30px}.brand-mark{width:44px;height:44px;border-radius:14px;background:#dff0ef;color:#155864;display:grid;place-items:center;font-size:22px;font-weight:900}.brand-wrap strong{display:block;color:#fff;font-size:15px}.brand-wrap span{display:block;font-size:11px;color:#91a5b0;margin-top:4px}.nav-list{display:grid;gap:7px}.nav-list a{padding:12px 14px;border-radius:10px;color:#c7d3d9;font-size:14px;transition:.15s ease}.nav-list a:hover{background:var(--nav2);color:#fff}.nav-list a.active{background:#dceff0;color:#113f46;font-weight:900;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.sidebar-foot{position:absolute;left:20px;right:20px;bottom:22px;padding:13px;border:1px solid #30434f;border-radius:12px;font-size:11px;color:#9ec0c2;line-height:1.45}.sidebar-foot small{display:block;color:#78909c;margin-top:4px}.safe-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#6dd1a2;margin-right:5px}.main-area{padding:28px 36px 60px;min-width:0}.page-topbar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.eyebrow{font-size:10px;letter-spacing:.16em;color:var(--muted);font-weight:800}.page-topbar h1{margin:8px 0 0;font-size:27px}.top-actions{display:flex;gap:10px;align-items:center}.top-search,.version-pill{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:800}.top-search{background:#fff;border:1px solid var(--line);color:#475765}.version-pill{background:var(--accent-soft);color:#155864}.hero-banner{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:30px 32px;background:linear-gradient(125deg,#173947,#235b63);color:#fff;border-radius:22px;box-shadow:var(--shadow)}.hero-kicker{font-size:11px;letter-spacing:.11em;color:#abd5d8;text-transform:uppercase}.hero-banner h2{margin:8px 0 10px;font-size:28px;line-height:1.35}.hero-banner h2 em{font-style:normal;color:#c0e6df}.hero-banner p{margin:0;color:#cbdadd;font-size:13px}.readiness-card{min-width:245px;padding:20px;border-radius:16px;border:1px solid rgba(255,255,255,.17);background:rgba(255,255,255,.06)}.readiness-number{font-size:34px;font-weight:900}.readiness-card strong{display:block;font-size:13px;margin-top:3px}.readiness-card small{color:#c7d7da}.progress{height:7px;background:rgba(255,255,255,.13);border-radius:999px;margin:13px 0 8px;overflow:hidden}.progress span{display:block;height:100%;background:#bde4de}.metric-grid{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));gap:12px;margin:18px 0}.metric{background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px;box-shadow:0 2px 8px rgba(15,28,40,.03)}.metric span,.metric small{display:block}.metric span{font-size:11px;color:var(--muted)}.metric strong{display:block;font-size:25px;margin:5px 0}.metric small{font-size:10px;color:#8b98a2}.metric.accent{border-top:3px solid #2c8b95}.metric.warning{border-top:3px solid #d5a12b}.metric.danger{border-top:3px solid #be5757}.layout-2col{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:17px;padding:20px;margin-top:18px;box-shadow:0 2px 10px rgba(15,28,40,.035);overflow:auto}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:14px}.panel-head h3{margin:0;font-size:15px}.panel-head p{margin:3px 0 0;color:var(--muted);font-size:11px}.panel-head>a{font-size:11px;color:var(--accent);font-weight:700}.assessment-card-list{display:grid;gap:9px}.assessment-card{display:flex;justify-content:space-between;align-items:center;gap:18px;border:1px solid #e7edf1;border-radius:13px;padding:13px 14px;background:#fbfcfd}.assessment-card:hover{border-color:#bed8db;background:#f9fcfc}.assessment-title{display:flex;gap:12px;align-items:center}.assessment-title strong{display:block;font-size:13px}.assessment-title small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.year-badge{display:inline-grid;place-items:center;min-width:48px;height:30px;border-radius:9px;background:#eaf2f4;color:#285f67;font-weight:900;font-size:12px}.mini-stats{display:flex;flex-wrap:wrap;gap:6px}.mini-stats span{padding:6px 8px;border-radius:8px;background:#f1f4f6;font-size:10px;color:#5c6b77}.mini-stats b{color:#1b2832}.mini-stats.grid5{display:grid;grid-template-columns:repeat(5,1fr);margin-top:14px}.text-danger{color:var(--danger)!important}.qa-list{display:grid}.qa-row{display:grid;grid-template-columns:66px 1fr;gap:10px;padding:10px 0;border-top:1px solid #edf1f3}.qa-row:first-child{border-top:0}.qa-row strong{font-size:11px}.qa-row p{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.severity,.workflow,.role,.tag{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:999px;font-size:10px;font-weight:800}.severity,.workflow,.role{padding:4px 8px}.severity.hold,.workflow.qa_hold,.workflow.imported_hold{background:var(--warn-soft);color:#765500}.severity.warn{background:#eef1f4;color:#566574}.severity.error{background:var(--danger-soft);color:#8d3030}.severity.info{background:var(--blue-soft);color:var(--blue)}.workflow.staged,.workflow.imported,.workflow.unreviewed{background:var(--ok-soft);color:var(--ok)}.role.new{background:#eef2f4;color:#53616e}.role.anchor_candidate{background:var(--blue-soft);color:var(--blue)}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:11px}th{text-align:left;color:#697684;font-weight:800;padding:9px 8px;border-bottom:1px solid #d9e1e6;white-space:nowrap}td{padding:9px 8px;border-bottom:1px solid #edf1f3;vertical-align:top}tbody tr:hover{background:#fafcfd}.mono,code{font-family:"SFMono-Regular",Consolas,monospace;font-size:10px}.empty-state{padding:28px;text-align:center;color:#8a969f}.filter-panel{margin-top:0}.filter-grid{display:grid;grid-template-columns:2fr repeat(5,minmax(110px,1fr));gap:10px;align-items:end}.filter-grid label{display:grid;gap:5px}.filter-grid label>span{font-size:10px;color:var(--muted);font-weight:700}.filter-grid input[type=text],.filter-grid select{height:38px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 10px;color:var(--text)}.check-field{display:flex!important;align-items:center;gap:7px;height:38px}.filter-actions{display:flex;gap:7px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 12px;border-radius:9px;font-size:11px;font-weight:800;border:1px solid transparent}.button.primary{background:var(--accent);color:#fff}.button.ghost{background:#fff;border-color:var(--line);color:#53616e}.item-result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.item-result-card{display:block;border:1px solid #e4eaee;border-radius:13px;padding:14px;background:#fff}.item-result-card:hover{border-color:#b9d7db;box-shadow:0 4px 12px rgba(15,28,40,.05)}.item-result-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.item-result-head strong{font-size:12px}.item-preview{font-size:11px;line-height:1.55;color:#43515c;min-height:50px;margin:9px 0}.item-meta-line{display:flex;flex-wrap:wrap;gap:6px}.item-meta-line span{padding:4px 6px;border-radius:6px;background:#f1f4f6;color:#65737e;font-size:9px}.assessment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}.assessment-overview-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 2px 9px rgba(15,28,40,.035)}.assessment-overview-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.assessment-overview-head>div{display:flex;align-items:center;gap:10px}.assessment-overview-head strong{font-size:14px}.assessment-sub{margin-top:10px;font-size:10px;color:var(--muted)}.card-actions{display:flex;gap:8px;margin-top:14px}.assessment-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center}.identity-strip{flex:1;display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}.identity-strip span{background:#fff;padding:12px}.identity-strip small{display:block;color:var(--muted);font-size:9px}.identity-strip b{display:block;margin-top:4px;font-size:13px}.review-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:12px}.review-card{display:block;border:1px solid #e2e9ed;border-radius:14px;padding:14px;background:#fff;min-height:172px}.review-card:hover{border-color:#b9d6d9;box-shadow:0 4px 12px rgba(15,28,40,.05)}.review-card.has-hold{border-color:#efc6a5;background:#fffdf9}.review-card-head{display:flex;justify-content:space-between;align-items:center}.review-card-head strong{font-size:18px}.review-card-title{margin-top:9px;font-size:11px;font-weight:800}.review-card p{font-size:10px;line-height:1.5;color:#5c6974;margin:7px 0 10px}.review-tags{display:flex;flex-wrap:wrap;gap:5px}.tag{padding:4px 7px}.tag.ok{background:var(--ok-soft);color:var(--ok)}.tag.warn,.tag.hold{background:var(--warn-soft);color:#765500}.tag.score{background:#edf1f3;color:#53616e}.tag.rubric{background:var(--blue-soft);color:var(--blue)}.item-nav-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px}.item-nav-meta{font-size:11px;color:var(--muted)}.item-nav-actions{display:flex;gap:7px}.detail-layout{display:grid;grid-template-columns:1fr 340px;gap:18px}.span-2{grid-column:1/-1}.question-panel{min-height:300px}.question-body{font-size:14px;line-height:1.75;color:#202d36}.question-body table,.rubric-body table{font-size:12px;margin:14px 0;border:1px solid #dfe6ea}.question-body th,.question-body td,.rubric-body th,.rubric-body td{border:1px solid #dfe6ea;padding:8px}.question-body img{display:block;max-width:100%;height:auto;margin:16px auto;border-radius:8px;box-shadow:0 2px 10px rgba(15,28,40,.07)}.score-answer{font-size:22px;font-weight:900;padding:18px;border-radius:12px;background:#f2f8f8;color:#155864;margin-bottom:13px;white-space:pre-line}.meta-list{display:grid;margin:0}.meta-list>div{display:grid;grid-template-columns:95px 1fr;gap:10px;padding:9px 0;border-top:1px solid #edf1f3}.meta-list>div:first-child{border-top:0}.meta-list dt{font-size:10px;color:var(--muted)}.meta-list dd{margin:0;font-size:11px;line-height:1.5}.rubric-body{font-size:12px;line-height:1.65}.lineage-list,.source-list{display:grid;gap:8px}.lineage-row,.source-entry{display:grid;align-items:center;gap:10px;padding:10px;border-radius:9px;background:#f8fafb}.lineage-row{grid-template-columns:80px 130px 100px 1fr}.lineage-row small{color:var(--muted)}.source-entry{grid-template-columns:120px 1fr 150px}.source-role{font-size:10px;font-weight:900;color:#52616d}.source-entry code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.danger-panel{border-color:#efc7c7;background:#fffdfd}@media(max-width:1180px){.metric-grid{grid-template-columns:repeat(4,1fr)}.layout-2col{grid-template-columns:1fr}.filter-grid{grid-template-columns:repeat(3,1fr)}.search-field{grid-column:1/-1}.detail-layout{grid-template-columns:1fr}.span-2{grid-column:auto}.identity-strip{grid-template-columns:repeat(4,1fr)}}@media(max-width:780px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.main-area{padding:18px 13px}.page-topbar,.hero-banner,.assessment-toolbar,.item-nav-bar{display:block}.top-actions,.item-nav-actions{margin-top:12px}.hero-banner h2{font-size:23px}.readiness-card{margin-top:18px}.metric-grid,.filter-grid,.identity-strip{grid-template-columns:repeat(2,1fr)}.assessment-card{display:block}.mini-stats{margin-top:10px}.source-entry,.lineage-row{grid-template-columns:1fr}.review-grid,.item-result-grid,.assessment-grid{grid-template-columns:1fr}}
/* JELS 784 FINAL additions */
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:32px;background:linear-gradient(135deg,#f5f7fb,#eef2f8)}
.login-card{width:min(440px,92vw);background:#fff;border:1px solid #dfe5ee;border-radius:20px;padding:34px;box-shadow:0 18px 50px rgba(20,35,60,.10)}
.login-card h1{margin:8px 0 6px}.login-card .muted{color:#687386}
.stack-form{display:grid;gap:14px;margin-top:24px}.stack-form label{display:grid;gap:7px;font-size:13px;font-weight:700}.stack-form input{padding:12px 14px;border:1px solid #cfd7e3;border-radius:10px;font-size:15px}
.alert{padding:11px 13px;border-radius:10px;background:#fff1f1;border:1px solid #f0bcbc;color:#9b2525;margin-top:14px}
.workflow.canonical{background:#eef7f1;color:#1d6a3a}.workflow.canonical_with_qa{background:#fff7df;color:#825f00}.workflow.hold_partial{background:#fff0f0;color:#9d2626}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.muted{color:#6b7280}.text-danger{color:#a32323;font-weight:700}
@media(max-width:800px){.sidebar{position:static;width:auto}.app-shell{display:block}.main-area{margin-left:0}.page-topbar{gap:12px;align-items:flex-start}.top-actions{flex-wrap:wrap}.filter-grid{grid-template-columns:1fr 1fr}.search-field{grid-column:1/-1}}
