:root{font-family:Inter,"Noto Sans KR",system-ui,sans-serif;color:#182230;background:#f5f7fa}*{box-sizing:border-box}body{margin:0}a{color:#2256a3}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#edf3ff,#f8fafc)}.auth-card{width:min(420px,100%);padding:32px;background:#fff;border:1px solid #dce3ec;border-radius:16px;box-shadow:0 12px 40px #1f35551a}.auth-card.wide{width:min(620px,100%)}h1{margin-top:0}form{display:grid;gap:14px}label{display:grid;gap:6px;font-weight:600}label.check{display:flex;align-items:center}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #b9c5d4;border-radius:8px;font:inherit}input[type=checkbox]{width:auto}button,.button{padding:11px 16px;border:0;border-radius:8px;background:#2256a3;color:#fff;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}.button.secondary{background:#64748b}.alert{padding:10px 12px;margin:10px 0;border-radius:8px}.alert.error,small{color:#9c1c1c;background:#fff1f1}.alert.success{color:#176134;background:#eefbf2}.app-header{min-height:64px;padding:10px 24px;display:flex;align-items:center;gap:24px;background:#17365f;color:#fff}.brand{flex:none;color:#fff;text-decoration:none;font-weight:800;white-space:nowrap}.app-menu{display:flex;flex:1;align-items:center;gap:4px;min-width:0}.menu-group{display:flex;align-items:center;gap:4px;min-width:0}.menu-group-common{flex-wrap:nowrap}.menu-group-admin{margin-left:8px;padding-left:12px;border-left:1px solid #ffffff4d}.menu-group-label{padding:0 4px;color:#c7d8ee;font-size:.72rem;font-weight:800;white-space:nowrap}.app-menu a,.nav-user{padding:8px 9px;color:#fff;text-decoration:none;white-space:nowrap;border-radius:6px}.app-menu a:hover,.app-menu a:focus-visible,.nav-user:hover,.nav-user:focus-visible{background:#ffffff1f}.nav-auth{display:flex;align-items:center;gap:6px;white-space:nowrap}.nav-auth form{display:block}.link-button{padding:8px 9px;background:transparent}.app-header-light{background:#fff;color:#17202a;border-bottom:1px solid #dce3ec;box-shadow:0 1px 3px #1822300d}.app-header-light .brand,.app-header-light .app-menu a,.app-header-light .nav-user{color:#17202a}.app-header-light .menu-group-admin{border-left-color:#cbd5e1}.app-header-light .menu-group-label{color:#526274}.app-header-light .app-menu a:hover,.app-header-light .app-menu a:focus-visible,.app-header-light .nav-user:hover,.app-header-light .nav-user:focus-visible{background:#eaf0f7}.app-header-light .link-button{color:#17202a}.page{padding:28px;max-width:1200px;margin:auto}.page-title{display:flex;justify-content:space-between;align-items:start}.search-grid,.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:22px 0;padding:20px;background:#fff;border-radius:12px}.search-grid{grid-template-columns:repeat(5,minmax(0,1fr));align-items:end}.full{grid-column:1/-1}.actions{display:flex;gap:10px}.table-wrap{overflow:auto;background:#fff;border-radius:12px}table{width:100%;border-collapse:collapse}th,td{padding:12px;border-bottom:1px solid #e3e8ef;text-align:left;white-space:nowrap}.detail-grid,section{margin-top:20px;padding:20px;background:#fff;border-radius:12px}dl{display:grid;grid-template-columns:140px 1fr;gap:10px}.tag{display:inline-block;padding:5px 10px;margin:3px;border-radius:999px;background:#e8effa}.timeline{padding:12px 0;border-bottom:1px solid #e3e8ef}.timeline time{float:right;color:#64748b}@media(max-width:1100px){.app-header{align-items:flex-start;flex-wrap:wrap}.app-menu{order:3;flex-basis:100%;overflow-x:auto;padding-bottom:2px}}@media(max-width:800px){.search-grid,.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.app-header{padding:10px 16px;gap:10px}.app-menu a{padding:8px}.nav-user{display:none}}

/* ASP.NET 기준 date-picker: 브라우저 기본 date UI 대신 공통 JavaScript 달력을 표시한다. */
.date-picker-input{background-image:linear-gradient(transparent,transparent),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2345515f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:18px;cursor:pointer;padding-right:42px}.date-picker{position:fixed;inset:auto;margin:0;z-index:2000;padding:12px;border:1px solid #cfd8e3;border-radius:8px;background:#fff;box-shadow:0 18px 42px rgba(15,23,42,.18)}.date-picker-header,.date-picker-footer{display:flex;align-items:center;justify-content:space-between}.date-picker-header{margin-bottom:10px}.date-picker-title{color:#17202a;font-size:15px;font-weight:850}.date-picker-nav,.date-picker-quick{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d8e0e8;border-radius:7px;background:#fff;color:#45515f;cursor:pointer;font:inherit;font-weight:800}.date-picker-nav{width:32px;height:32px;font-size:20px;line-height:1}.date-picker-quick{min-height:30px;padding:5px 9px;font-size:12px}.date-picker-nav:hover,.date-picker-quick:hover,.date-picker-days button:hover{border-color:#b9d7df;background:#e7f3f6;color:#084d62}.date-picker-weekdays,.date-picker-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.date-picker-weekdays{margin-bottom:5px;color:#687587;font-size:12px;font-weight:850;text-align:center}.date-picker-days button,.date-picker-empty{height:34px;border-radius:7px}.date-picker-days button{border:1px solid transparent;background:#fff;color:#263241;cursor:pointer;font:inherit;font-size:13px;font-weight:750}.date-picker-days button.is-today{border-color:#9dc7d1;color:#0b5f78}.date-picker-days button.is-selected{border-color:#0b5f78;background:#0b5f78;color:#fff}.date-picker-days button:disabled{background:#f5f7f9;color:#b0bac5;cursor:not-allowed}.date-picker-footer{margin-top:10px;padding-top:10px;border-top:1px solid #e7ebf0}


.dashboard-page{max-width:1320px}.dashboard-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.dashboard-heading h1{margin:0 0 10px}.dashboard-heading p:not(.eyebrow){margin:0;color:#526274}.eyebrow{margin:0 0 6px;color:#2256a3;font-size:.875rem;font-weight:800}.heading-actions{display:flex;flex-wrap:wrap;gap:8px}.server-disk-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 20px;padding:18px 20px;border:1px solid #bdd2ea;border-radius:12px;background:#f5f9ff;box-shadow:0 2px 8px #1822300a}.server-disk-panel h2{margin:0 0 5px;font-size:1.1rem}.server-disk-panel p:not(.eyebrow){margin:0;color:#526274;font-size:.88rem}.server-disk-metrics{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:22px}.server-disk-metrics div{display:grid;gap:5px}.server-disk-metrics span{color:#526274;font-size:.82rem;font-weight:700}.server-disk-metrics strong{font-size:1.05rem;white-space:nowrap}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.metric-card,.work-panel{background:#fff;border:1px solid #e0e7ef;border-radius:12px;box-shadow:0 2px 8px #1822300a}.metric-card{padding:20px;display:grid;gap:8px}.metric-card span{color:#526274;font-size:.9rem;font-weight:700}.metric-card strong{font-size:1.8rem}.metric-card.warning{border-color:#ead7a7;background:#fffdf7}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}.work-panel{padding:20px;min-width:0}.work-panel.wide{grid-column:span 3}.dashboard-detail-grid .wide{grid-column:span 1}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-header h2{margin:0;font-size:1.05rem}.panel-header a{font-size:.9rem;font-weight:700}.empty-state{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:88px;padding:16px;border:1px dashed #c9d5e3;border-radius:9px;color:#526274;text-decoration:none}.empty-state strong,.empty-state span{display:block}.empty-state strong{margin-bottom:5px;color:#182230}.action-item:hover{border-color:#2256a3;background:#f4f8ff}.status-pill{flex:none;padding:5px 9px;border-radius:999px;background:#e8effa;color:#2256a3;font-size:.8rem;font-weight:700}.empty-table{text-align:center;color:#526274;padding:30px}@media(max-width:1000px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.work-grid{grid-template-columns:1fr}.work-panel.wide,.dashboard-detail-grid .wide{grid-column:auto}}@media(max-width:700px){.dashboard-heading{display:grid}.server-disk-panel{align-items:flex-start;flex-direction:column;gap:16px}.server-disk-metrics{width:100%;grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr}.heading-actions{width:100%}.heading-actions .button{flex:1;text-align:center}.empty-state{align-items:flex-start;flex-direction:column}}
.installation-audit-warning{margin:0 0 20px;padding:18px 20px;border:1px solid #efc56d;border-radius:12px;background:#fff8e8;box-shadow:0 2px 8px #1822300a}.installation-audit-warning h2{margin:0 0 5px;color:#774b00;font-size:1.1rem}.installation-audit-warning p:not(.eyebrow){margin:0;color:#6d5a34;line-height:1.55}.installation-audit-warning .eyebrow{color:#9a6700}

.dashboard-detail-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}

/* 사건 권한 거부: 시스템 오류와 구분되는 안내 화면을 제공한다. */
.access-denied-panel{max-width:680px;margin:76px auto;padding:32px}.access-denied-panel h1{margin-bottom:12px}.access-denied-panel p:not(.eyebrow){margin:0 0 22px;color:#526274;line-height:1.65}
@media(max-width:700px){.access-denied-panel{margin:28px auto;padding:24px}}

/* 사건 등록·수정·상세: ASP.NET 기준 화면의 업무 밀도와 상호작용을 복원한다. */
.case-form-page,.case-details-page{max-width:1380px}.case-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:0 0 18px;padding:0;background:transparent}.case-page-heading.compact{margin-bottom:16px}.case-page-heading h1{margin:0 0 8px;font-size:2rem;letter-spacing:-.03em}.case-page-heading p:not(.eyebrow){margin:0;color:#526274}.button.outline{border:1px solid #9fb3ca;background:#fff;color:#2256a3}.button.compact{padding:7px 10px;font-size:.84rem}.button:disabled,button:disabled{cursor:not-allowed;opacity:.45}.text-button{width:auto;padding:0;border:0;background:transparent;color:#2256a3;font:inherit;font-size:.86rem;font-weight:800;text-decoration:underline;text-underline-offset:3px}.heading-actions{justify-content:flex-end}.form-section{margin:0 0 18px;padding:22px;border:1px solid #dce5ef;border-radius:14px;background:#fff;box-shadow:0 3px 14px #18223008}.form-section .panel-header{padding-bottom:14px;border-bottom:1px solid #e7edf4}.form-section .panel-header>div{display:flex;align-items:center;gap:10px}.form-section .panel-header h2{font-size:1.15rem}.form-section .panel-header>span,.panel-header>span{color:#687587;font-size:.86rem}.section-kicker{display:inline-grid;place-items:center;width:30px;height:30px;margin:0;border-radius:8px;background:#e9f0fb;color:#2256a3;font-size:.73rem;font-weight:900}.case-form{gap:0}.case-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px}.case-form-grid .span-2{grid-column:1/-1}.case-form-grid label,.app-dialog label{color:#2e3b4b;font-size:.9rem}.label-help{color:#7a8796;font-size:.78rem;font-weight:500}.input-action{display:flex;gap:8px}.input-action input{flex:1}.input-action button{white-space:nowrap}.field-error:empty{display:none}.field-error{display:block;padding:0;background:transparent;color:#b42318;font-size:.78rem}.validation-summary{margin-bottom:18px;padding:16px 18px;border:1px solid #f1b8b2;border-radius:10px;background:#fff4f2;color:#8f1f17}.validation-summary ul{margin:7px 0 0;padding-left:20px}.rich-field{display:grid;gap:7px}.rich-field-heading{display:flex;align-items:center;justify-content:space-between}.rich-field-heading label{font-weight:700}.rich-source{display:none}.rich-editor{overflow:hidden;border:1px solid #b9c5d4;border-radius:9px;background:#fff}.rich-toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:8px;border-bottom:1px solid #dce4ed;background:#f7f9fc}.rich-toolbar select{width:auto;min-width:96px;padding:6px 8px}.rich-toolbar input[type=color]{width:38px;height:34px;padding:4px}.rich-toolbar button{min-width:34px;padding:6px 9px;border:1px solid #c9d5e2;background:#fff;color:#28384b}.rich-surface{min-height:190px;padding:14px;outline:0;line-height:1.65}.rich-surface:focus{box-shadow:inset 0 0 0 2px #2256a333}.rich-surface table,.rich-output table{width:100%;border-collapse:collapse}.rich-surface td,.rich-output td{min-width:80px;padding:7px;border:1px solid #aebccc}.sticky-form-actions{position:sticky;z-index:20;bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0 26px;padding:13px 16px;border:1px solid #ced9e6;border-radius:12px;background:#fffffff2;box-shadow:0 10px 32px #142b4a24;backdrop-filter:blur(8px)}.sticky-form-actions>span{color:#687587;font-size:.86rem}.sticky-form-actions>div{display:flex;gap:8px}.permission-section{margin-top:0}.permission-list{display:grid;gap:8px}.permission-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto auto;align-items:center;gap:14px;padding:11px 12px;border:1px solid #e3e9f0;border-radius:9px}.permission-row>div span{display:block;color:#718096;font-size:.8rem}.permission-row .check{font-size:.84rem}.permission-fixed{grid-column:span 2;color:#687587;font-size:.84rem;font-weight:700}
.app-dialog{width:min(640px,calc(100% - 28px));max-height:86vh;padding:0;border:0;border-radius:15px;background:#fff;box-shadow:0 24px 80px #0f1f3566}.app-dialog::backdrop{background:#10243b99;backdrop-filter:blur(2px)}.app-dialog>form,.app-dialog>div,.app-dialog>input,.app-dialog>.picker-list{margin-left:22px;margin-right:22px}.app-dialog>form{margin:0;padding:22px;gap:14px}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0 0 16px!important}.dialog-heading h2{margin:0}.dialog-close{width:38px;height:38px;padding:0;border:1px solid #d4dde8;border-radius:50%;background:#fff;color:#364559;font-size:1.45rem;line-height:1}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.app-dialog>input[type=search]{width:calc(100% - 44px);margin-bottom:14px}.picker-list{overflow:auto;max-height:52vh;margin-bottom:22px;border:1px solid #e1e8f0;border-radius:10px}.picker-item{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px;padding:13px 14px;border:0;border-bottom:1px solid #e7edf3;border-radius:0;background:#fff;color:#182230;text-align:left}.picker-item:hover{background:#f2f6fc}.picker-item span:first-child{min-width:0}.picker-item strong,.picker-item small{display:block}.picker-item small{overflow:hidden;margin-top:4px;background:transparent;color:#6d7a8a;text-overflow:ellipsis;white-space:nowrap}.is-disabled{opacity:.58}
.operations-task-dialog{width:min(760px,calc(100% - 28px))}.operations-task-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}.operations-task-grid .full{grid-column:1/-1}@media(max-width:700px){.operations-task-grid{grid-template-columns:1fr}.operations-task-grid .full{grid-column:auto}}
.case-command-panel{margin:0 0 16px;padding:20px;border:1px solid #d9e3ee;border-radius:14px;background:linear-gradient(135deg,#fff,#f7faff);box-shadow:0 4px 16px #1822300c}.case-command-main{display:flex;align-items:center;gap:14px;padding-bottom:17px}.case-command-main>div{flex:1;min-width:0}.case-command-main strong,.case-command-main span{display:block}.case-command-main>div>span{margin-top:4px;color:#687587;font-size:.86rem}.case-command-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.case-summary-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px;padding:13px;border:1px solid #dce5ef;border-radius:10px;background:#fff;color:#182230;text-decoration:none}.case-summary-card>span{grid-column:1/-1;color:#687587;font-size:.8rem;font-weight:750}.case-summary-card strong{font-size:1.35rem}.status-pill.tone-done{background:#e8f7ed;color:#177044}.status-pill.tone-warning{background:#fff4d6;color:#885f05}.status-pill.tone-danger{background:#ffebe8;color:#a22b20}.status-pill.tone-neutral{background:#edf1f5;color:#536274}.workflow-panel{margin:0 0 16px}.workflow-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.workflow-step{position:relative;padding:14px;border:1px solid #e0e7ef;border-radius:10px;background:#fbfcfe}.workflow-step strong{display:block;margin-top:10px}.workflow-step p{margin:5px 0 0;color:#687587;font-size:.82rem;line-height:1.45}.case-detail-columns{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:16px;margin:0 0 16px;padding:0;background:transparent}.case-detail-columns>.work-panel{margin:0}.definition-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0}.definition-list>div{display:grid;grid-template-columns:100px 1fr;gap:8px;padding:9px 0;border-bottom:1px solid #edf1f5}.definition-list>div:nth-last-child(-n+2){border-bottom:0}.definition-list>div.wide{grid-column:1/-1}.definition-list dt{color:#667486;font-size:.82rem}.definition-list dd{overflow-wrap:anywhere;margin:0;font-weight:650}.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:15px}.tag-row span{padding:5px 9px;border-radius:999px;background:#e9f0fb;color:#2256a3;font-size:.8rem;font-weight:750}.case-timeline{overflow:auto;max-height:470px}.case-timeline article{padding:12px 0;border-bottom:1px solid #e7edf3}.case-timeline article:first-child{padding-top:0}.case-timeline article>div{display:flex;justify-content:space-between;gap:12px}.case-timeline time,.case-timeline small{color:#758294;font-size:.78rem}.case-timeline p{margin:6px 0;color:#48586b;font-size:.88rem}.case-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;padding:0;background:transparent}.case-work-grid>.work-panel{margin:0}.stack-list{display:grid;gap:9px}.stack-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid #e2e9f0;border-radius:9px;background:#fff}.stack-item>div:first-child{min-width:0}.stack-item strong,.stack-item span{display:block}.stack-item>div:first-child>span{overflow-wrap:anywhere;margin-top:4px;color:#687587;font-size:.8rem}.row-actions,.panel-action-group{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.row-actions form{display:block}.row-actions a{font-size:.82rem;font-weight:750}.document-item{display:grid;grid-template-columns:1fr auto}.version-list{grid-column:1/-1;padding-top:8px;border-top:1px dashed #dae3ed}.version-list summary{cursor:pointer;color:#526274;font-size:.82rem;font-weight:750}.version-list a{display:block;margin-top:6px;font-size:.8rem}.billing-panel,.narrative-panel{margin:16px 0 0}.billing-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.billing-columns h3,.narrative-columns h3{margin:0 0 10px;font-size:.95rem}.billing-columns .stack-item{align-items:flex-start}.narrative-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.narrative-columns article{min-width:0;padding:15px;border:1px solid #e3e9f0;border-radius:10px;background:#fbfcfe}.rich-output{overflow:auto;line-height:1.7;overflow-wrap:anywhere}.empty-note{margin:0;padding:18px;border:1px dashed #cbd7e4;border-radius:9px;color:#687587;background:#fbfcfe;font-size:.86rem}.app-dialog .check{display:flex;align-items:center}.app-dialog .check input{width:auto}.app-dialog small.field-error{padding:0}
.case-detail-single{grid-template-columns:minmax(0,1fr)}
@media(max-width:1100px){.workflow-steps{grid-template-columns:repeat(3,minmax(0,1fr))}.case-detail-columns{grid-template-columns:1fr}.billing-columns{grid-template-columns:1fr}.case-command-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.case-page-heading{display:grid}.heading-actions{justify-content:flex-start}.case-form-grid,.case-work-grid,.narrative-columns{grid-template-columns:1fr}.case-form-grid .span-2{grid-column:auto}.workflow-steps{grid-template-columns:1fr}.case-command-main{align-items:flex-start;flex-wrap:wrap}.case-command-main>div{order:2;flex-basis:100%}.permission-row{grid-template-columns:1fr auto auto}.permission-row button{grid-column:1/-1}.definition-list{grid-template-columns:1fr}.definition-list>div.wide{grid-column:auto}.sticky-form-actions{position:static;align-items:stretch;flex-direction:column}.sticky-form-actions>div{display:grid;grid-template-columns:1fr 1fr}.sticky-form-actions a,.sticky-form-actions button{text-align:center}.document-item{grid-template-columns:1fr}.document-item>.row-actions{justify-content:flex-start}.version-list{grid-column:auto}}
.signature-create-heading{padding:0;background:transparent}.signature-form-panel{max-width:920px;margin:0 auto}.signature-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px}.signature-form-grid .span-2{grid-column:1/-1}.input-suffix{display:flex;align-items:center;gap:8px}.input-suffix input{flex:1}.input-suffix>span{white-space:nowrap;color:#526274}.contract-generation-note{display:grid;gap:6px;margin-top:22px;padding:16px 18px;border:1px dashed #b8c9dd;border-radius:10px;background:#f7faff;color:#526274}.contract-generation-note strong{color:#182230}.contract-generation-note small{padding:0;background:transparent;color:#687587}.signature-form-actions{display:flex;gap:9px;margin-top:22px}@media(max-width:800px){.signature-form-grid{grid-template-columns:1fr}.signature-form-grid .span-2{grid-column:auto}.signature-form-actions{display:grid;grid-template-columns:1fr 1fr}.signature-form-actions a{text-align:center}}
@media(max-width:520px){.case-command-grid{grid-template-columns:1fr}.case-form-page,.case-details-page{padding:20px 14px}.form-section,.work-panel,.case-command-panel{padding:16px}.input-action{align-items:stretch;flex-direction:column}.rich-toolbar select{min-width:0;flex:1}.case-page-heading h1{font-size:1.65rem}}

/* 공개 전자서명: 모바일에서도 OTP, 계약 확인, 패드 서명을 한 화면에서 처리한다. */
.signature-public-body{min-height:100vh;background:linear-gradient(145deg,#edf3ff,#f8fafc)}.signature-public-shell{width:min(760px,100%);margin:0 auto;padding:32px 18px}.signature-public-panel{padding:28px;border:1px solid #dce5ef;border-radius:16px;background:#fff;box-shadow:0 16px 45px #18304f14}.signature-public-heading{text-align:center}.signature-public-heading h1{margin-bottom:8px}.signature-public-heading p:last-child{color:#687587}.signature-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0}.signature-summary>div{padding:14px;border:1px solid #e1e8f0;border-radius:10px;background:#fafcff}.signature-summary span,.signature-summary strong{display:block}.signature-summary span{margin-bottom:5px;color:#687587;font-size:.78rem}.signature-step-card,.signature-complete-message,.signature-consent-box{margin:18px 0;padding:18px;border:1px solid #dce5ef;border-radius:11px;background:#f8faff}.signature-step-card span,.signature-step-card strong{display:block}.signature-step-card span{color:#2256a3;font-size:.78rem;font-weight:850}.signature-step-card strong{margin:5px 0}.signature-step-card p,.signature-complete-message p{margin-bottom:0;color:#5d6c7e}.signature-download-button{display:inline-flex;margin-top:16px}.signature-otp-form{max-width:360px;margin:0 auto}.signature-otp-form input{font-size:1.4rem;letter-spacing:.35em;text-align:center}.signature-pad-wrap{overflow:hidden;border:1px solid #b9c5d4;border-radius:10px;background:#fff;touch-action:none}.signature-pad-wrap canvas{display:block;width:100%;height:auto}.signature-pad-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:12px}.signature-consent-box label{display:flex;align-items:flex-start;gap:8px}.signature-consent-box input{margin-top:3px}@media(max-width:640px){.signature-public-shell{padding:14px 10px}.signature-public-panel{padding:18px 14px}.signature-summary{grid-template-columns:1fr}.signature-download-button{display:flex;width:100%}.signature-pad-actions{display:grid;grid-template-columns:1fr 1fr}.signature-pad-actions button{width:100%}}
.signatures-page .detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:16px;padding:0;background:transparent}.signatures-page .detail-grid>.work-panel{margin:0}.signature-share-box{display:grid;gap:13px}.signature-share-box label strong{display:block;padding:12px;border:1px solid #d7e0ea;border-radius:8px;background:#f7faff;font-size:1.35rem;letter-spacing:.22em;text-align:center}.signature-share-box small{padding:0;background:transparent;color:#687587}.hash-text{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem}@media(max-width:900px){.signatures-page .detail-grid{grid-template-columns:1fr}}

/* 기본 설정 */
.settings-page{max-width:1480px}.settings-heading{margin:0 0 20px;padding:26px;border:1px solid #d7e0ea;border-radius:9px;background:#fff;box-shadow:0 2px 8px #1822300a}.settings-heading h1{margin:0 0 4px;font-size:1.9rem;letter-spacing:-.04em}.settings-heading>p:last-child{margin:0;color:#64748b}.settings-form{margin-top:24px}
@media(max-width:560px){.settings-page{padding:18px 12px}.settings-heading{padding:20px}}

/* 파일 업로드 제출 상태 */
[data-upload-submit]{display:inline-flex;align-items:center;justify-content:center;gap:8px}[data-upload-form][data-submitting=true] [data-upload-submit]{cursor:wait;opacity:.72}.upload-submit-spinner{display:inline-block;width:16px;height:16px;flex:none;border:2px solid #ffffff66;border-top-color:#fff;border-radius:50%;animation:upload-submit-spin .7s linear infinite}@keyframes upload-submit-spin{to{transform:rotate(360deg)}}

/* 산정 등록 및 사정 참고자료 생성 */
.calculation-create-page{max-width:1380px}.calculation-form-panel{padding:24px}.calculation-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.calculation-form-grid .span-3{grid-column:1/-1}.damage-section{margin-top:22px;padding-top:20px;border-top:1px solid #e2e8f0}.damage-section h2{margin:0 0 14px;font-size:1rem}.form-actions{display:flex;gap:8px;margin-top:22px}.report-dialog{width:min(800px,calc(100% - 28px))}.report-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.report-summary>div,.report-attachment-item{padding:14px;border:1px solid #dfe6ef;border-radius:9px}.report-summary strong,.report-summary span{display:block}.report-summary span,.report-attachment-meta{margin-top:5px;color:#687587;font-size:.8rem}.report-output-options{display:flex;gap:18px;padding:14px 0;border-bottom:1px solid #e4e9ef}.report-output-options label,.report-attachment-heading{display:flex;align-items:center}.report-output-options input,.report-attachment-heading input{width:auto}.report-attachment-list{display:grid;gap:10px;overflow:auto;max-height:310px;margin-top:14px}.report-attachment-heading{justify-content:space-between;gap:12px}.report-attachment-heading label{display:flex;align-items:center;gap:8px}.report-page-input{max-width:240px;margin-top:10px}@media(max-width:800px){.calculation-form-grid{grid-template-columns:1fr}.calculation-form-grid .span-3{grid-column:auto}.report-summary{grid-template-columns:1fr}}

/* 사건 파일 공개 공유 화면 */
.public-share-body{min-height:100vh;background:#eef3f8}.share-main{display:grid;gap:16px;width:min(1180px,calc(100% - 32px));margin:0 auto;padding:48px 0}.share-main section{margin:0;padding:0}.share-summary,.share-file-panel{border:1px solid #dce5ef;border-radius:10px;background:#fff;box-shadow:0 8px 24px #1f2d3d0a}.share-summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px!important}.share-summary h1{margin:0 0 10px;font-size:1.55rem}.share-summary p:last-child{margin:9px 0 0;color:#687587}.share-tags{display:flex;flex-wrap:wrap;gap:8px}.share-tags span,.share-file-type{padding:4px 8px;border-radius:6px;background:#eef5ff;color:#2256a3;font-size:.78rem;font-weight:800}.share-summary-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px}.share-file-panel{overflow:hidden}.share-file-panel .panel-header{margin:0;padding:18px 20px;border-bottom:1px solid #dfe6ee;background:linear-gradient(180deg,#fbfdff,#f5f8fb)}.share-file-panel .panel-header h2{display:inline-flex;align-items:center;gap:10px;font-size:1.1rem}.share-file-panel .panel-header h2:before{width:4px;height:18px;border-radius:3px;background:#2256a3;content:""}.share-file-table{display:grid}.share-file-row{display:grid;grid-template-columns:minmax(250px,1.8fr) 110px 90px 100px 145px 130px;align-items:center;gap:12px;padding:14px 18px;border-top:1px solid #e7ebf0}.share-file-row:first-child{border-top:0}.share-file-head{border-bottom:1px solid #e2e8f0;background:#f8fafc;color:#344256;font-size:.78rem;font-weight:850}.share-file-title{min-width:0}.share-file-title strong{overflow-wrap:anywhere}.share-file-row>.status-pill,.share-file-row>.share-file-type{justify-content:center;text-align:center}.share-empty-note{margin:18px}.share-no-action{color:#8693a3}.share-memo-dialog{width:min(770px,calc(100% - 28px))}.share-memo-dialog>form{gap:16px;padding:24px}.share-memo-title{display:flex;align-items:center;gap:10px}.share-memo-title h2{font-size:1.25rem}.share-memo-title-icon{color:#009f7a;font-size:1.15rem}.share-memo-list{display:grid;gap:10px;overflow:auto;max-height:250px}.share-memo-item{padding:13px 15px;border:1px solid #dfe6ef;border-radius:9px;background:#f8fafc}.share-memo-meta{margin-bottom:9px;padding-bottom:8px;border-bottom:1px solid #dfe6ef;color:#52647a;font-size:.8rem;font-weight:800}.share-memo-item .rich-output{font-size:.9rem}.share-memo-dialog .empty-note{margin:0;text-align:center}.share-memo-compose{display:grid;gap:8px!important;margin:0!important;padding:0!important;background:transparent!important}.share-memo-compose h3{margin:0;font-size:.95rem}.share-memo-toolbar{align-items:center}.share-memo-toolbar select{width:auto;min-width:100px;padding:7px 9px}.share-memo-toolbar select:nth-child(2){min-width:64px}.share-memo-toolbar input[type=color]{width:38px;height:36px;padding:4px}.share-memo-toolbar button{min-width:36px;height:36px;padding:6px}.share-memo-surface{position:relative;min-height:150px}.share-memo-surface:empty:before{color:#7b8794;content:attr(data-placeholder);pointer-events:none}.share-memo-error{min-height:1em;padding:0;background:transparent}.share-memo-dialog .dialog-actions{margin-top:0}@media(max-width:860px){.share-main{padding:24px 0}.share-summary{display:grid;padding:20px!important}.share-summary-actions{justify-content:flex-start}.share-file-row{grid-template-columns:1fr}.share-file-head{display:none}.share-file-row>.status-pill,.share-file-row>.share-file-type{justify-self:start}.share-file-row .row-actions{justify-content:flex-start}.share-memo-dialog>form{padding:18px}.share-memo-toolbar select{min-width:0;flex:1}.share-memo-list{max-height:180px}}

/* 약관검색: 검색 조건, 내부 결과, 외부 공시실의 정보 위계를 명확히 분리한다. */
.policy-search-page{max-width:1380px;padding-top:32px;padding-bottom:48px}
.policy-search-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin:0 0 18px;padding:4px 2px 6px;background:transparent}
.policy-search-heading h1{margin:0 0 10px;font-size:2rem;letter-spacing:-.045em}
.policy-search-heading>div:first-child>p:last-child{max-width:760px;margin:0;color:#526274;line-height:1.65}
.policy-heading-tags{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.policy-heading-tags span{padding:7px 11px;border:1px solid #d7e1ee;border-radius:999px;background:#fff;color:#526274;font-size:.78rem;font-weight:750;white-space:nowrap}
.policy-search-filter{margin:0;padding:24px}
.policy-section-header{align-items:flex-start;margin-bottom:20px}
.policy-section-header>div{min-width:0}
.policy-section-header h2{font-size:1.08rem;letter-spacing:-.02em}
.policy-section-header p{margin:6px 0 0;color:#748195;font-size:.82rem;line-height:1.45}
.policy-section-label,.policy-result-count{flex:none;padding:5px 9px;border-radius:999px;background:#eef3f9;color:#56677c;font-size:.78rem;font-weight:800;white-space:nowrap}
.policy-result-count{min-width:48px;background:#e9f0fb;color:#2256a3;text-align:center}
.policy-search-form{display:flex;align-items:flex-end;gap:14px;margin:0;padding-top:20px;border-top:1px solid #e7edf4}
.policy-search-fields{display:grid;flex:1;grid-template-columns:minmax(280px,1.45fr) minmax(180px,.8fr) minmax(180px,.7fr);gap:14px}
.policy-search-fields label{color:#344256;font-size:.87rem}
.policy-search-fields input,.policy-search-fields select{min-height:46px;background-color:#fff}
.policy-search-fields input:focus,.policy-search-fields select:focus{border-color:#6288bd;box-shadow:0 0 0 3px #2256a31c;outline:0}
.policy-search-actions{display:flex;gap:8px}
.policy-search-actions button,.policy-search-actions .button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;white-space:nowrap}
.policy-search-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.65fr);align-items:start;gap:18px;margin-top:18px}
.policy-search-layout>.work-panel{margin:0;padding:22px}
.policy-results-panel{min-height:360px}
.policy-result-list{display:grid;gap:12px}
.policy-result-item{padding:18px;border:1px solid #dfe7f0;border-radius:11px;background:#fff;box-shadow:0 2px 7px #18223008}
.policy-result-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.policy-result-heading>div{min-width:0}
.policy-result-heading h3{margin:9px 0 0;font-size:1.02rem;overflow-wrap:anywhere}
.policy-result-heading time{flex:none;color:#7a8796;font-size:.77rem;white-space:nowrap}
.policy-result-meta{display:grid;grid-template-columns:.65fr 1fr 1.35fr;gap:0;margin:16px 0 0;border-top:1px solid #edf1f5;border-bottom:1px solid #edf1f5}
.policy-result-meta>div{min-width:0;padding:12px 14px;border-left:1px solid #edf1f5}
.policy-result-meta>div:first-child{padding-left:0;border-left:0}
.policy-result-meta dt{margin-bottom:5px;color:#778496;font-size:.75rem;font-weight:700}
.policy-result-meta dd{margin:0;color:#344256;font-size:.84rem;font-weight:650;overflow-wrap:anywhere}
.policy-result-content{margin:15px 0 0;color:#526274;font-size:.88rem;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}
.policy-result-actions{display:flex;justify-content:flex-end;margin-top:14px}
.policy-source-button{padding:8px 11px;font-size:.8rem}
.policy-empty-state{display:grid;place-items:center;min-height:250px;padding:42px 20px;border:1px dashed #cfdae7;border-radius:11px;background:#fbfcfe;text-align:center}
.policy-empty-icon{display:grid;width:48px;height:48px;place-items:center;margin-bottom:14px;border-radius:50%;background:#edf3fb;color:#5273a4}
.policy-empty-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.policy-empty-state strong{font-size:.95rem}
.policy-empty-state p{margin:7px 0 0;color:#7a8796;font-size:.82rem;line-height:1.5}
.policy-external-panel{position:sticky;top:18px}
.policy-external-list{display:grid;gap:10px}
.policy-external-card{position:relative;display:grid;gap:7px;padding:16px 44px 16px 16px;border:1px solid #dfe7f0;border-radius:10px;background:#fbfcfe;color:#526274;text-decoration:none;transition:border-color .15s ease,background .15s ease,transform .15s ease}
.policy-external-card:hover,.policy-external-card:focus-visible{border-color:#8fadd2;background:#f3f7fd;outline:0;transform:translateY(-1px)}
.policy-external-card strong{color:#182230;font-size:.92rem}
.policy-external-card>span:not(.policy-external-type):not(.policy-link-action){font-size:.81rem;line-height:1.5}
.policy-external-type{width:max-content;padding:4px 7px;border-radius:6px;background:#e9f0fb;color:#2256a3;font-size:.72rem;font-weight:800}
.policy-link-action{display:inline-flex;align-items:center;gap:3px;margin-top:3px;color:#2256a3;font-size:.78rem;font-weight:800}
.policy-link-action>span{position:absolute;top:16px;right:16px;font-size:1rem}
.policy-external-note{margin:14px 0 0;padding-top:13px;border-top:1px solid #edf1f5;color:#8894a3;font-size:.74rem;line-height:1.5}
@media(max-width:1000px){.policy-search-layout{grid-template-columns:minmax(0,1fr) minmax(280px,.58fr)}.policy-search-form{align-items:stretch;flex-direction:column}.policy-search-actions{justify-content:flex-end}}
@media(max-width:860px){.policy-search-heading{align-items:flex-start;flex-direction:column}.policy-heading-tags{justify-content:flex-start}.policy-search-layout{grid-template-columns:1fr}.policy-external-panel{position:static}.policy-search-fields{grid-template-columns:1fr 1fr}.policy-query-field{grid-column:1/-1}}
@media(max-width:560px){.policy-search-page{padding:20px 12px 36px}.policy-search-heading{gap:16px}.policy-search-heading h1{font-size:1.7rem}.policy-heading-tags{gap:6px}.policy-search-filter,.policy-search-layout>.work-panel{padding:17px}.policy-section-header{gap:10px}.policy-section-header p{display:none}.policy-search-fields{grid-template-columns:1fr}.policy-query-field{grid-column:auto}.policy-search-actions{display:grid;grid-template-columns:1fr 1fr}.policy-result-heading{display:grid;gap:8px}.policy-result-heading time{order:-1}.policy-result-meta{grid-template-columns:1fr}.policy-result-meta>div,.policy-result-meta>div:first-child{padding:10px 0;border-left:0;border-bottom:1px solid #edf1f5}.policy-result-meta>div:last-child{border-bottom:0}.policy-empty-state{min-height:220px}.policy-external-card{padding:15px 42px 15px 14px}}

/* 모든 목록 화면에서 공통으로 사용하는 15건/5페이지 단위 페이징. */
.pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;margin:18px 0 0;padding:0;background:transparent}
.pagination-link{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 10px;border:1px solid #d4dde8;border-radius:8px;background:#fff;color:#344256;font-size:.88rem;font-weight:800;text-decoration:none}
.pagination-link:hover,.pagination-link:focus-visible{border-color:#7d9fc8;background:#f1f6fc;color:#174d91;outline:0}
.pagination-link.current{border-color:#2256a3;background:#2256a3;color:#fff;pointer-events:none}
.pagination-link.disabled{background:#f6f8fa;color:#a4afbd;cursor:not-allowed}
.pagination-edge{font-size:1.15rem}
.pagination-summary{margin-left:8px;color:#64748b;font-size:.8rem;font-weight:700}
@media(max-width:560px){.pagination{gap:4px}.pagination-link{min-width:34px;height:34px;padding:0 8px}.pagination-summary{flex-basis:100%;margin:6px 0 0;text-align:center}}

/* 파일관리: 등록 폼 대신 사건·파일 종류 조회 조건을 한 줄로 배치한다. */
.document-search{grid-template-columns:minmax(260px,2fr) minmax(200px,1fr) auto}.document-search .actions{align-items:end}.document-search .actions>*{white-space:nowrap}@media(max-width:800px){.document-search{grid-template-columns:1fr}.document-search .actions>*{flex:1;text-align:center}}
.customers-page,.customer-form-page{max-width:1380px}.customer-search{grid-template-columns:minmax(280px,2fr) minmax(220px,1fr) auto}.customer-type-description{display:block;margin-top:5px;padding:0;background:transparent;color:#687587}.customer-link-field{display:grid;gap:6px}.customer-link-field>label{display:block}.customer-history-dialog{width:min(1180px,calc(100% - 28px))}.customer-history-content{margin:0!important;padding:24px}.customer-history-content>.dialog-heading{margin:0 0 16px!important}.customer-history-content>.dialog-heading p:last-child{margin:7px 0 0;color:#687587}.customer-history-table{max-height:58vh}.customer-history-table small{padding:0;background:transparent;color:#687587}.customer-form-page>.customer-form{margin-top:0}.customer-form-page .sticky-form-actions{margin-bottom:0}@media(max-width:800px){.customer-search{grid-template-columns:1fr}.customer-history-content{padding:18px}.customer-history-table table{min-width:980px}.customer-link-field .input-action{display:grid;grid-template-columns:1fr 1fr}.customer-link-field .input-action input{grid-column:1/-1}}

/* 사건 등록 고객 검색: 고객 선택에만 쓰이는 간결한 검색 모달이다. */
.customer-picker-dialog{width:min(640px,calc(100% - 28px));overflow:hidden;border-radius:15px}.customer-picker-dialog .dialog-heading{align-items:center;margin:0 0 15px!important}.customer-picker-dialog .eyebrow{margin:0 0 6px;color:#2256a3;font-size:.84rem;font-weight:850;letter-spacing:0}.customer-picker-dialog .dialog-heading h2{font-size:1.35rem;letter-spacing:-.03em}.customer-picker-dialog .dialog-close{flex:none;width:38px;height:38px;border-color:#d4dde8;color:#475569;font-size:1.4rem}.customer-picker-dialog .customer-picker-search{height:48px;padding:11px 12px;border:2px solid #eb9b00;border-radius:9px;box-shadow:none;outline:0}.customer-picker-dialog .customer-picker-search:focus{border-color:#c98100;box-shadow:0 0 0 3px #eb9b0026}.customer-picker-dialog .customer-picker-list{margin-bottom:22px;border:0;border-radius:0;background:transparent}.customer-picker-dialog .customer-picker-empty{padding:18px;border-color:#c7d6e6;border-radius:9px;background:#fbfcfe;color:#687587;line-height:1.35}.customer-picker-dialog .customer-picker-list:not(:has(.customer-picker-empty)){border:1px solid #e1e8f0;border-radius:10px}
@media(max-width:560px){.customer-picker-dialog{width:calc(100% - 24px)}.customer-picker-dialog>div,.customer-picker-dialog>input,.customer-picker-dialog>.picker-list{margin-left:16px;margin-right:16px}.customer-picker-dialog>input[type=search]{width:calc(100% - 32px)}.customer-picker-dialog .dialog-heading{margin-top:18px!important}.customer-picker-dialog .customer-picker-list{margin-bottom:18px}}

/* 사건 등록 직원 검색: 소속 정보와 권한 수준을 한 행에서 빠르게 식별한다. */
.employee-picker-dialog{width:min(640px,calc(100% - 28px));overflow:hidden;border-radius:15px}.employee-picker-dialog .dialog-heading{align-items:center;margin:0 0 15px!important}.employee-picker-dialog .eyebrow{margin:0 0 6px;color:#2256a3;font-size:.84rem;font-weight:850;letter-spacing:0}.employee-picker-dialog .dialog-heading h2{font-size:1.35rem;letter-spacing:-.03em}.employee-picker-dialog .dialog-close{flex:none;width:38px;height:38px;border-color:#d4dde8;color:#475569;font-size:1.4rem}.employee-picker-dialog .employee-picker-search{height:48px;padding:11px 12px;border:2px solid #182230;border-radius:9px;box-shadow:none;outline:0}.employee-picker-dialog .employee-picker-search:focus{border-color:#2256a3;box-shadow:0 0 0 3px #2256a326}.employee-picker-dialog .employee-picker-list{margin-bottom:22px;border-color:#dce5ef;border-radius:10px}.employee-picker-dialog .picker-item{min-height:64px;padding:12px 14px}.employee-picker-dialog .picker-item:last-of-type{border-bottom:0}.employee-picker-dialog .picker-item strong{font-size:.91rem}.employee-picker-dialog .picker-item small{margin-top:4px;color:#64748b;font-size:.76rem;font-weight:650}.employee-picker-dialog .status-pill{padding:5px 9px;background:#e9f0fb;color:#2256a3;font-size:.76rem;font-weight:850}
@media(max-width:560px){.employee-picker-dialog{width:calc(100% - 24px)}.employee-picker-dialog>div,.employee-picker-dialog>input,.employee-picker-dialog>.picker-list{margin-left:16px;margin-right:16px}.employee-picker-dialog>input[type=search]{width:calc(100% - 32px)}.employee-picker-dialog .dialog-heading{margin-top:18px!important}.employee-picker-dialog .employee-picker-list{margin-bottom:18px}}

/* 선택 모달의 제목도 검색창·결과 목록과 동일한 안쪽 여백에 맞춘다. */
.picker-dialog .dialog-heading{margin:22px 22px 15px!important}
@media(max-width:560px){.picker-dialog .dialog-heading{margin:18px 16px 15px!important}}

/* 반응형 기준: PC(1200px+), 태블릿(768px~1199px), 스마트폰(767px 이하). */
.metric-card.neutral{border-color:#e0e7ef;background:#fff}
.nav-toggle,.sr-only{display:none}

@media(min-width:1200px){
    .app-header{padding-inline:24px}.page{padding:28px}.app-menu{flex-wrap:nowrap}
}

@media(min-width:768px) and (max-width:1199px){
    .app-header{align-items:center;flex-wrap:wrap;padding:12px 20px;gap:10px 18px}
    .app-menu{order:3;flex-basis:100%;flex-wrap:wrap;gap:4px;overflow:visible}.menu-group{flex-wrap:wrap}
    .app-menu a{padding:8px 10px}.page{padding:24px;max-width:100%}
    .search-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
    .dashboard-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .dashboard-detail-grid .wide{grid-column:span 1}
    .case-detail-columns{grid-template-columns:1fr}.billing-columns{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:767px){
    .app-header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;min-height:60px;padding:9px 14px;gap:8px}
    .brand{min-width:0;overflow:hidden;text-overflow:ellipsis}.brand-logo{max-width:150px!important;max-height:38px!important}
    .nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid #ffffff55;border-radius:8px;background:#ffffff12;color:#fff;font-size:1.35rem}
    .nav-auth{justify-self:end}.nav-user{display:none}.link-button{min-height:40px;padding:8px 6px;font-size:.78rem}
    .app-menu{display:none;grid-column:1/-1;order:initial;flex:initial;width:100%;padding-top:8px;border-top:1px solid #ffffff26}
    .app-header.menu-open .app-menu{display:flex;flex-direction:column;align-items:stretch;gap:2px}
    .menu-group{width:100%;flex-direction:column;align-items:stretch;gap:2px}.menu-group-admin{margin:8px 0 0;padding:8px 0 0;border-top:1px solid #ffffff4d;border-left:0}.menu-group-label{padding:4px 14px}
    .app-menu a{width:100%;min-height:44px;padding:12px 14px;border-radius:8px;background:#ffffff0d}
    .app-header-light .nav-toggle{border-color:#cbd5e1;background:#f8fafc;color:#17202a}.app-header-light .app-menu{border-top-color:#dce3ec}.app-header-light .menu-group-admin{border-top-color:#cbd5e1}.app-header-light .app-menu a{background:#f4f7fa}
    .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
    .page{padding:18px 14px;max-width:100%}.page-title,.dashboard-heading,.case-page-heading{align-items:stretch;flex-direction:column;gap:14px}
    .page-title>.button,.heading-actions .button{width:100%;text-align:center}.heading-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
    .search-grid,.form-grid,.case-form-grid,.operations-task-grid,.case-work-grid,.narrative-columns,.billing-columns,.dashboard-detail-grid{grid-template-columns:1fr}
    .full,.case-form-grid .span-2{grid-column:auto}.search-grid,.form-grid{margin:16px 0;padding:16px;gap:13px}
    section,.work-panel,.form-section{padding:16px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric-card{padding:16px}.metric-card strong{font-size:1.45rem}
    .work-grid{grid-template-columns:1fr;gap:12px;margin-top:12px}.work-panel.wide,.dashboard-detail-grid .wide{grid-column:auto}
    .case-command-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.case-command-panel{padding:16px}.case-command-main{align-items:flex-start;flex-wrap:wrap}.case-command-main>div{order:2;flex-basis:100%}
    .workflow-steps{grid-template-columns:1fr}.definition-list{grid-template-columns:1fr}.definition-list>div{grid-template-columns:96px minmax(0,1fr)}
    .actions,.panel-action-group,.row-actions{align-items:stretch;justify-content:flex-start}.actions{flex-wrap:wrap}.actions>.button,.actions>button{flex:1;min-width:120px}
    th,td{padding:10px;font-size:.86rem}.table-wrap{margin-inline:-2px}.app-dialog>form{padding:18px}.dialog-actions{display:grid;grid-template-columns:1fr 1fr}.dialog-actions .button,.dialog-actions button{text-align:center}
    .case-details-page .heading-actions{display:flex;flex-wrap:nowrap;gap:6px}.case-details-page .heading-actions .button{width:auto;flex:1 1 auto;padding:8px 6px;font-size:.72rem;white-space:nowrap}.case-details-page .workflow-panel,.case-details-page .timeline-panel{display:none}
}

.case-status-form,.case-status-form label{display:flex;align-items:center;gap:8px}.case-status-form label{color:#526274;font-size:.82rem;font-weight:700}.case-status-form select{width:auto;min-width:104px;padding:6px 28px 6px 9px;font-size:.86rem}@media(max-width:520px){.case-status-form{align-items:flex-end;flex-direction:column}.case-status-form label{align-items:flex-start;flex-direction:column}.case-status-form select{width:100%}}
.invoice-item{align-items:center!important}.invoice-item .invoice-summary{flex:1;min-width:0}.invoice-actions{flex:0 0 142px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;justify-items:end;gap:8px}.invoice-actions>.status-pill{grid-column:1/-1;justify-self:end}.invoice-status-form{display:block!important;grid-column:1/-1;width:100%;margin:0}.invoice-status-form select{width:100%;min-width:0;padding:7px 8px;font-size:.82rem}.invoice-file-actions{display:flex;grid-column:1/-1;justify-content:flex-end;gap:8px;width:100%}.invoice-file-actions .button{min-width:0}@media(max-width:520px){.invoice-item{align-items:flex-start!important}.invoice-actions{flex-basis:132px;align-items:center;justify-items:end}.invoice-status-form select{padding-inline:7px}.invoice-file-actions{gap:4px}}
.detail-item{align-items:center!important}.detail-dialog>div{margin:0;padding:22px}.detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;border-top:1px solid #e7edf4}.detail-list>div{min-width:0;padding:12px 0;border-bottom:1px solid #e7edf4}.detail-list>div:nth-child(odd){padding-right:14px}.detail-list>div:nth-child(even){padding-left:14px;border-left:1px solid #e7edf4}.detail-list>div.wide{grid-column:1/-1;padding-right:0}.detail-list>div.wide+div{border-left:0}.detail-list dt{margin-bottom:5px;color:#687587;font-size:.8rem;font-weight:700}.detail-list dd{margin:0;color:#28384b;line-height:1.55;overflow-wrap:anywhere;white-space:pre-wrap}@media(max-width:520px){.detail-item{align-items:flex-start!important}.detail-dialog>div{padding:18px}.detail-list{grid-template-columns:1fr}.detail-list>div:nth-child(odd),.detail-list>div:nth-child(even){padding-left:0;padding-right:0;border-left:0}.detail-list>div.wide{grid-column:auto}}

/* 업무 통계: 월별 비교와 고객·직원별 누적 실적을 한 화면에서 제공한다. */
.statistics-page{max-width:1380px;padding-bottom:48px}.statistics-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 0 18px;padding:4px 2px 8px;background:transparent}.statistics-heading h1{margin:0 0 9px;font-size:2rem;letter-spacing:-.04em}.statistics-heading p:not(.eyebrow){margin:0;color:#526274}.statistics-period{padding:8px 11px;border:1px solid #d7e1ee;border-radius:999px;background:#fff;color:#526274;font-size:.82rem;font-weight:800;white-space:nowrap}.statistics-filter{display:grid;grid-template-columns:minmax(180px,240px) minmax(180px,240px) auto;align-items:end;gap:14px;margin:0 0 18px;padding:18px}.statistics-filter label{color:#344256;font-size:.87rem}.statistics-filter input{min-height:44px;background:#fff}.statistics-filter-actions{display:flex}.statistics-filter-actions button{min-height:44px;white-space:nowrap}.statistics-metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:0 0 18px;padding:0;background:transparent}.statistics-metric-grid .metric-card{margin:0}.statistics-metric-grid .metric-card strong{font-size:1.35rem;letter-spacing:-.035em}.statistics-chart-panel{margin:18px 0 0;padding:22px}.statistics-chart-panel .panel-header p{margin:5px 0 0;color:#687587;font-size:.82rem}.statistics-chart{display:grid;gap:13px}.statistics-chart-row{display:grid;grid-template-columns:76px minmax(80px,1fr) 88px minmax(80px,1fr) 88px;align-items:center;gap:10px}.statistics-chart-row.amount{grid-template-columns:76px minmax(70px,1fr) 120px minmax(70px,1fr) 120px minmax(70px,1fr) 120px}.statistics-chart-label{color:#526274;font-size:.8rem;font-weight:800}.statistics-bar-track{height:12px;overflow:hidden;border-radius:999px;background:#edf2f7}.statistics-bar{display:block;min-width:0;height:100%;border-radius:inherit}.statistics-bar.registered{background:#2a6fbb}.statistics-bar.closed{background:#35a16b}.statistics-bar.adjustment{background:#7e5bef}.statistics-bar.fee{background:#e6942b}.statistics-bar.paid{background:#16a3a3}.statistics-chart-row strong{color:#475569;font-size:.76rem;text-align:right;white-space:nowrap}.statistics-table-panel{margin:18px 0 0;padding:22px}.statistics-table-panel .panel-header p{margin:5px 0 0;color:#687587;font-size:.82rem}.statistics-note{display:flex;gap:12px;margin-top:18px;padding:15px 18px;border:1px solid #dce7f3;border-radius:10px;background:#f6f9fc;color:#65758a;font-size:.8rem;line-height:1.65}.statistics-note strong{flex:none;color:#344256}@media(max-width:1100px){.statistics-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.statistics-chart-row.amount{grid-template-columns:70px minmax(60px,1fr) 105px minmax(60px,1fr) 105px minmax(60px,1fr) 105px}}@media(max-width:767px){.statistics-page{padding:20px 14px 36px}.statistics-heading{align-items:flex-start;flex-direction:column;gap:12px}.statistics-filter{grid-template-columns:1fr 1fr}.statistics-filter-actions{grid-column:1/-1}.statistics-filter-actions button{width:100%}.statistics-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.statistics-metric-grid .metric-card:last-child{grid-column:1/-1}.statistics-chart-panel,.statistics-table-panel{padding:17px}.statistics-chart-row,.statistics-chart-row.amount{grid-template-columns:58px minmax(50px,1fr) 76px;gap:7px}.statistics-chart-row .statistics-bar-track:nth-of-type(2),.statistics-chart-row.amount .statistics-bar-track:nth-of-type(n+2){grid-column:2}.statistics-chart-row strong{grid-column:3}.statistics-note{align-items:flex-start;flex-direction:column;gap:4px}}
