: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}.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}.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}.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}.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}}

/* 사건 등록·수정·상세: 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}
.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}
@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}}

/* 상용구 관리의 파괴적 작업은 일반 동작과 구분한다. */
.template-delete-button{border-color:#e6b6b0;background:#fff;color:#a22b20}.template-delete-button:hover,.template-delete-button:focus-visible{border-color:#a22b20;background:#ffebe8;outline:0}
