:root{--purple:#302448;--teal:#307884;--pale:#f8f9fa;--border:#dfe3e6;--muted:#68717a;--orange:#fff1df;--orange-border:#df8d32;--gap:#53616d;--danger:#9f3b32}
*{box-sizing:border-box}
.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}
body{margin:0;font-family:Arial,"Malgun Gothic",sans-serif;color:#212529;line-height:1.45}
header{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:15px 28px;color:#fff;background:var(--purple)}
header strong{font-size:18px}
.subtitle{margin-left:12px;font-size:13px;color:#d8d3e2}
nav{display:flex;gap:22px}
nav a{color:#d8d3e2;text-decoration:none;font-size:14px}
nav .active{padding-bottom:3px;border-bottom:2px solid #fff;color:#fff;font-weight:bold}
main{margin:auto;padding:28px}
.hero{margin-bottom:16px}
.hero h1{margin:0;color:var(--purple);font-size:25px}
.hero p{margin:5px 0;color:#4c555d}
.search,.filter{display:flex;align-items:end;gap:8px;margin-top:12px}
.search input{width:min(600px,70vw);font-size:16px}
input,select,button{padding:8px;border:1px solid var(--border);font:inherit;background:#fff}
button{cursor:pointer;border-color:var(--purple);background:var(--purple);color:#fff}
.filter label{display:grid;gap:4px;color:var(--purple);font-size:13px;font-weight:bold}
.panel{margin:16px 0;padding:18px;border:1px solid var(--border)}
.empty{padding:42px;color:var(--muted)}
.panel-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:10px}
.panel-title h2{margin:0;color:var(--purple);font-size:17px}
.panel-title span{color:var(--muted);font-size:12px}
.notice{margin:14px 0;padding:10px 12px;border-left:4px solid var(--teal);background:#eff7f6;font-size:13px}
.notice-danger{border-left-color:var(--danger);background:#fdebea;color:#7a241d}
.table-wrap{max-height:70vh;overflow:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{padding:8px 10px;border-bottom:1px solid #eceff1;text-align:left;vertical-align:top}
thead th{position:sticky;top:0;z-index:2;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--pale);color:var(--purple)}
tr:hover td{background:#fafafa}
.number{text-align:right;white-space:nowrap}
.clickable{cursor:pointer}
.clickable.selected td{background:#f0edf6}
.more{display:inline-block;margin-top:12px;color:var(--purple);font-size:13px}
.sharebar{display:inline-block;width:100px;height:8px;margin-right:5px;overflow:hidden;background:#e7eaed;vertical-align:middle}
.sharebar i{display:block;height:100%;background:var(--teal)}
.product-pivot table{min-width:1000px}
.product-pivot th:first-child{position:sticky;left:0;z-index:3;min-width:300px;background:#fff}
.product-pivot thead th:first-child{background:var(--pale)}
.product-pivot small{display:block;margin-top:3px;color:var(--muted);font-weight:normal}
.product-pivot .month{text-align:right;white-space:nowrap}
.zero{color:#a8afb5}
.uncollected{color:var(--danger);font-size:12px}
.event-cell{background:var(--orange)!important}
.event{display:block;width:max-content;margin:3px 0 0 auto;padding:1px 4px;border:1px solid var(--orange-border);color:#a15d0b;font-size:10px;line-height:1.2}
.disclosure{display:block;padding:0;border:0;background:transparent;color:var(--purple);font-size:13px;font-weight:bold;text-align:left}
.product-pivot details{margin-top:4px;color:#59636d;font-weight:normal}
.product-pivot details summary{cursor:pointer;font-size:12px}
.product-pivot details ul{max-width:650px;margin:6px 0;padding-left:18px;font-size:12px}
.matrix table{min-width:1360px}
.matrix thead th:not(:first-child){min-width:140px}
.matrix tbody th{position:sticky;left:0;z-index:3;background:#fff;color:var(--purple)}
.matrix-cell{display:block;min-width:110px;padding:6px;text-decoration:none;font-size:12px;text-align:center;line-height:1.3}
.matrix-cell.supplied{color:#056b76;background:#e5f3f3}
.matrix-cell.partial{color:#6d491c;background:#fff0d6}
.matrix-cell.gap{color:#33414c;background:#ecf0f2}
.matrix-cell.unobserved{color:#8c342c;background:#fdebea}
.matrix-cell.none{color:#9aa2a9;background:#fafafa}
.matrix-cell.d2{filter:brightness(.95)}
.matrix-cell.d3{filter:brightness(.89)}
.mixed{display:inline-block;padding:1px 3px;border:1px solid #a36a17;color:#80500c;font-size:10px;font-weight:normal}
footer{padding:14px 28px;border-top:1px solid var(--border);background:var(--pale);color:var(--muted);font-size:12px}
@media(max-width:850px){header{padding:12px 16px}
.subtitle{display:none}
main{padding:18px}
.search,.filter{align-items:stretch;flex-direction:column}
.search input{width:100%}
.panel-title{align-items:start;flex-direction:column}
}

.outside{color:#80500c;font-size:12px;font-weight:bold}
.coverage-notice{margin:14px 0;padding:12px 14px;border:1px solid #d39e00;border-left:4px solid #d39e00;background:#fff3cd;color:#5c4300;font-size:13px}

/* WEB-004 · WEB-003 목업의 색·여백·클래스명을 재사용 */
.sales-dashboard .filter{display:flex;align-items:flex-end;gap:22px;flex-wrap:wrap;padding:16px 18px;border:1px solid var(--border);margin:16px 0}
.sales-dashboard .filter .fld{display:flex;flex-direction:column;gap:6px}
.sales-dashboard .filter .fld>label:first-child{font-size:12px;color:var(--muted);font-weight:normal}
.sales-dashboard .filter .opts{display:flex;gap:14px;align-items:center}
.sales-dashboard .filter .opts label{display:flex;align-items:center;gap:5px;font-size:13px;color:#212529;font-weight:normal}
.sales-dashboard .filter .disabled{color:var(--muted)!important}
.sales-dashboard .hint{font-size:12px;color:var(--muted)}
.sales-day-hidden{display:none!important}
.kpi-band{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:16px 0}
.kpi{padding:18px;border:1px solid var(--border);background:#fff}
.kpi .label{font-size:13px;color:var(--muted)}
.kpi .val{font-size:24px;color:var(--purple);font-weight:bold;margin:6px 0 4px}
.kpi .val .up,.kpi .val.up,.up{color:var(--teal)}
.kpi .val .dn,.kpi .val.dn,.dn{color:var(--danger)}
.kpi .foot{font-size:12px;color:var(--muted)}
.fcst-launch{display:flex;align-items:center;gap:10px}
.badge{font-size:12px;color:var(--danger);border:1px solid var(--danger);border-radius:3px;padding:2px 8px}
.sales-table{max-height:none}
.sales-table table{min-width:920px}
.sales-table .sales-code{display:block;margin-top:2px;color:var(--muted);font-size:10px}
.sales-table tr.sum td{background:var(--pale);font-weight:bold}
.sales-table tr.dim{opacity:.75}
.noinput{color:var(--danger);font-size:12px}
.modal-back{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:200;align-items:flex-start;justify-content:center;padding:40px 16px}
.modal-back.open{display:flex}
.modal{background:#fff;width:900px;max-width:100%;max-height:80vh;display:flex;flex-direction:column;border:1px solid var(--border)}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--border)}
.modal-head h2{font-size:17px;color:var(--purple);margin:0}
.modal-head .close{background:none;border:none;color:var(--muted);font-size:22px;line-height:1;cursor:pointer;padding:0 4px}
.modal-filter{display:flex;gap:18px;padding:14px 18px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.modal-filter .fld{display:flex;flex-direction:column;gap:5px}
.modal-filter .fld label{font-size:12px;color:var(--muted)}
.modal-filter .required{color:var(--danger)}
.modal-body{overflow-y:auto;padding:0 18px}
.fcst-inp{text-align:right;width:140px}
.modal-foot{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-top:1px solid var(--border)}
.modal-foot .count{font-size:13px;color:var(--muted)}
.modal-foot .btns{display:flex;gap:10px}
.web086-tabs{display:flex;gap:6px;max-width:100%;margin:12px 0;padding:3px 2px 9px;overflow-x:auto;overflow-y:hidden;scrollbar-gutter:stable;white-space:nowrap}
.web086-tabs button{flex:0 0 auto;white-space:nowrap;border:1px solid var(--purple);border-radius:999px;background:#fff;color:var(--purple);box-shadow:none}
.web086-tabs button.active,.web086-tabs button[aria-selected=true]{background:var(--purple);color:#fff;box-shadow:0 2px 7px #30244840}
.todo-table{min-width:760px}.todo-table th:nth-child(1){width:38%}.todo-table th:nth-child(2){width:18%}.todo-table th:nth-child(3){width:14%}.todo-table th:nth-child(4){width:12%}.todo-table th:nth-child(5){width:18%}.todo-task strong{display:block}.todo-task small{display:block;margin-top:5px;color:var(--muted)}.todo-origin{display:inline-flex;align-items:center;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700;white-space:nowrap}.todo-origin-meeting{border:1px solid #93c5fd;background:#eff6ff;color:#1d4ed8}.todo-origin-legacy{border:1px solid #d1d5db;background:#f8fafc;color:#475569}.todo-complete{text-align:center}.todo-complete form{display:inline-block;margin:2px}
button.ghost{background:#fff;color:var(--purple)}

@media(max-width:850px){.sales-dashboard .filter{flex-direction:column;align-items:stretch}
.kpi-band{grid-template-columns:1fr 1fr}
.modal-back{padding:16px 8px}
.modal-body{padding:0 10px}
}

@media(max-width:640px){.sales-monthly-table{max-height:none}
.sales-monthly-table:not(.sales-all-columns) table{min-width:0}
.sales-monthly-table:not(.sales-all-columns) .sales-extra{display:none}
.sales-monthly-table.sales-all-columns{overflow-x:auto}
.sales-monthly-table.sales-all-columns table{min-width:920px}
.sales-monthly-table.sales-all-columns td:first-child,.sales-monthly-table.sales-all-columns th:first-child{position:sticky;left:0;z-index:3;background:#fff}
.sales-monthly-table.sales-all-columns thead th:first-child{background:var(--pale)}
.sales-columns-toggle{display:block;margin:0 0 10px}
.inbound-item-fields{position:relative}
.inbound-suggestions{position:absolute;z-index:20;left:0;right:0;top:100%;display:grid;max-height:220px;overflow:auto;background:#fff;border:1px solid var(--border)}
.inbound-suggestion{border:0;border-bottom:1px solid var(--border);color:#212529;text-align:left;background:#fff}
.inbound-suggestion:hover{background:var(--pale)}
}

/* WEB-011 · 시황·신제품 제안 업로드 통로 */
.intake-page{margin:auto}
.intake-actions{display:flex;align-items:center;gap:14px;margin:16px 0}
.intake-actions span{font-size:13px;color:var(--muted)}
.intake-primary{display:inline-block;padding:9px 14px;background:var(--purple);color:#fff;text-decoration:none}
.intake-filter{flex-wrap:wrap}
.intake-filter input{min-width:130px}
.filter-reset{color:var(--purple);font-size:13px}
.intake-form{display:grid;gap:18px;padding:20px;border:1px solid var(--border)}
.intake-form>label,.intake-grid>label{display:grid;gap:6px;color:var(--purple);font-size:14px;font-weight:bold}
.intake-form label span{color:var(--muted);font-size:12px;font-weight:normal}
.intake-form b{color:var(--danger);font-size:12px}
.intake-form textarea{width:100%;resize:vertical}
.intake-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.intake-form-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px}
.intake-alert{padding:10px 12px;border-left:4px solid var(--danger);background:#fdebea;color:#6d2520}
.intake-status{display:inline-block;padding:2px 7px;border-radius:3px;font-size:12px;font-weight:bold}
.status-접수{color:#174d55;background:#e5f3f3}
.status-정리중{color:#80500c;background:#fff0d6}
.status-정리완료{color:#3a4e3f;background:#edf5ee}
.intake-breadcrumb{margin-bottom:12px;font-size:13px}
.intake-breadcrumb a{color:var(--purple)}
.intake-detail h1{margin:0;color:var(--purple);font-size:20px}
.intake-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.intake-meta div{min-width:0}
.intake-meta dt{font-size:12px;color:var(--muted)}
.intake-meta dd{margin:3px 0 0;overflow-wrap:anywhere}
.intake-detail h2{margin:22px 0 8px;color:var(--purple);font-size:16px}
.intake-raw{margin:0;padding:14px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:#f8f9fa;border:1px solid var(--border);font:13px/1.55 Arial,"Malgun Gothic",sans-serif}
.intake-none{color:var(--muted);font-size:13px}
.intake-files{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.intake-file{display:grid;gap:8px;padding:12px;border:1px solid var(--border);min-width:0}
.intake-file strong,.intake-file small{display:block;overflow-wrap:anywhere}
.intake-file small{margin-top:3px;color:var(--muted);font-size:11px}
.intake-file>a{color:var(--purple);font-size:13px;font-weight:bold}
.intake-preview{width:100%;max-height:320px;object-fit:contain;background:#f8f9fa}
.intake-pdf{width:100%;height:320px;border:1px solid var(--border)}
.intake-no-preview{padding:18px;background:#f8f9fa;color:var(--muted);font-size:12px}
.intake-status-form{display:flex;align-items:end;gap:8px;margin-top:22px}
.intake-status-form label{display:grid;gap:4px;color:var(--purple);font-size:13px;font-weight:bold}

@media(max-width:850px){header{align-items:flex-start;gap:10px;flex-direction:column}
nav{width:100%;gap:14px;overflow-x:auto;white-space:nowrap;padding-bottom:2px}
.intake-actions{align-items:stretch;flex-direction:column}
.intake-primary{text-align:center}
.intake-grid{grid-template-columns:1fr}
.intake-files{grid-template-columns:1fr}
.intake-meta{grid-template-columns:1fr 1fr}
.intake-form{padding:16px}
.intake-status-form{align-items:stretch;flex-direction:column}
.intake-status-form button{min-height:42px}
}

/* WEB-014 · 의견 수렴용 갭 매트릭스 */
.web014-matrix table{min-width:2750px}
.web014-matrix thead th{white-space:normal;text-align:center}
.web014-matrix .gap-band{position:sticky;top:0;z-index:4;font-size:13px}
.web014-matrix .gap-customer{position:sticky;top:34px;z-index:4;min-width:160px}
.web014-matrix .gap-customer a,.web014-matrix .gap-term a,.web014-matrix .gap-amount a{color:inherit;text-decoration:none}
.web014-matrix .gap-customer small{display:block;margin-top:3px;color:var(--muted);font-size:10px;font-weight:normal}
.web014-matrix .band-A{background:#edf5ee}
.web014-matrix .band-B{background:#fff0d6}
.web014-matrix .band-C{background:#f2f4f5}
.web014-matrix .gap-customer.band-B{font-weight:bold;color:#664510}
.web014-matrix .gap-term{position:sticky;left:0;z-index:3;min-width:265px;text-align:left}
.web014-matrix .gap-term.selected,.web014-matrix .gap-customer.selected{box-shadow:inset 0 -3px 0 var(--purple)}
.web014-matrix .gap-amount{min-width:160px;padding:0;text-align:right}
.web014-matrix .gap-amount a{display:block;min-height:58px;padding:8px 10px}
.web014-matrix .gap-amount small{display:block;margin-top:4px;color:#69757d;font-size:10px;text-align:left}
.web014-matrix .gap-amount.d1 a{background:#eef5f4}
.web014-matrix .gap-amount.d2 a{background:#cae3df}
.web014-matrix .gap-amount.d3 a{background:#95c7c0;font-weight:bold}
.gap-list td a{color:var(--purple);text-decoration:none}
.gap-list .unlinked{color:var(--muted);font-size:12px}

/* WEB-015 · 영업 미팅기록과 일일업무일지 */
.meeting-page{margin:auto}
.meeting-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px}
.sales-card{align-self:start;padding:18px;border:1px solid var(--border);background:var(--pale);font-size:13px}
.sales-card strong{color:var(--purple);font-size:17px}
.sales-card ol{margin:10px 0;padding-left:22px}
.sales-card li{margin:4px 0;overflow-wrap:anywhere}
.meeting-page h2{font-size:16px;color:var(--purple);margin-top:20px}
.meeting-page button,.meeting-page input,.meeting-page select{min-height:44px}
@media(max-width:850px){.meeting-layout{grid-template-columns:1fr}
.sales-card{order:-1}
.meeting-page .intake-form{padding:16px}
.meeting-page .kpi-band{grid-template-columns:1fr 1fr}
.meeting-page .filter{gap:12px}
}

.paste-image-hint{color:#174d55!important;font-size:12px!important}
.paste-attachments{display:grid;gap:8px}
.paste-attachment-count{font-size:13px;color:var(--purple)}
.paste-attachment-list{display:flex;flex-wrap:wrap;gap:10px}
.paste-attachment{position:relative;display:grid;grid-template-columns:80px;gap:5px;width:104px;min-width:0;padding:8px;border:1px solid var(--border);background:#fff;font-size:11px}
.paste-attachment img,.paste-file-icon{display:block;width:80px;height:60px;object-fit:cover;background:var(--pale)}
.paste-file-icon{display:grid;place-items:center;color:var(--muted)}
.paste-attachment>span:last-of-type{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.paste-attachment-remove{position:absolute;right:3px;top:3px;min-height:24px!important;width:24px;padding:0;border-radius:999px;line-height:1;background:#fff;color:var(--danger);border-color:var(--danger)}
.paste-image-notice{margin:0;padding:8px 10px;border-left:4px solid var(--danger);background:#fdebea;color:#6d2520;font-size:12px}
@media(max-width:375px){.paste-attachment-list{gap:8px}
.paste-attachment{width:96px;grid-template-columns:72px}
.paste-attachment img,.paste-file-icon{width:72px;height:54px}
}

.upper-nav{gap:18px}
.upper-nav .nav-upper{font-weight:bold}
.section-tabs{display:flex;gap:18px;padding:9px 28px;border-bottom:1px solid var(--border);background:#fff}
.section-tabs a{color:var(--muted);text-decoration:none;font-size:14px}
.section-tabs a.active{color:var(--purple);font-weight:bold;border-bottom:2px solid var(--purple);padding-bottom:4px}
@media(max-width:850px){.upper-nav{width:100%;gap:14px;overflow-x:auto;white-space:nowrap;padding-bottom:2px}
.section-tabs{padding:9px 16px;overflow-x:auto;white-space:nowrap}
.section-tabs a{flex:none}
}

.status-auth{max-width:520px;margin:48px auto}
.status-auth h1{color:var(--purple)}
.status-frame{padding:0;overflow:hidden}
.status-frame iframe{display:block;width:100%;height:calc(100vh - 210px);min-height:680px;border:0}
.collect-none td{background:#fdebea}
.collect-metro0 td{background:#fff0d6}
.collect-metro-thin td{background:#fffbe5}
.collect-ok td{background:#edf5ee}
.collect-gray td{background:#f2f4f5}
.vendor-money-mobile{display:none}
@media(max-width:850px){.vendor-money-desktop{display:none}
.vendor-money-mobile{display:inline}
}

.weekly-page{}
.weekly-preview{display:block;max-width:100%;margin:12px 0;border:1px solid var(--border)}

/* WEB-021 · 수입견적 */
.import-page{}
.import-required{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:16px;border:1px solid #d8d3e2;background:#faf9fc}
.import-required label,.import-details label{display:grid;gap:5px;color:var(--purple);font-size:13px;font-weight:bold}
.import-required b{color:var(--danger);font-size:11px}
.import-required input,.import-required select,.import-details input,.import-details select{min-width:0;width:100%;min-height:42px}
.inline{display:flex;gap:4px}
.inline input{min-width:0}
.inline select{width:auto;min-width:66px}
.import-calc{display:grid;grid-template-columns:160px 1fr;gap:4px 16px;margin:16px 0;padding:16px;border:1px solid #307884;background:#eff7f6}
.import-calc strong{grid-row:span 2;color:#174d55;font-size:15px}
.import-calc b{font-size:24px;color:#174d55}
.import-calc span{color:#4c555d;font-size:13px}
.import-calc i{font-style:normal;font-weight:bold}
.import-form details{border:1px solid var(--border);padding:12px 16px}
.import-form summary{cursor:pointer;color:var(--purple);font-weight:bold}
.import-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.import-details fieldset{display:grid;gap:10px;margin:0;padding:12px;border:1px solid var(--border)}
.import-details legend{color:var(--purple);font-size:13px;font-weight:bold}
.import-details textarea{width:100%;resize:vertical}
.import-details small{color:var(--muted);font-size:11px;font-weight:normal}
.import-details .check{display:flex;align-items:center;gap:7px}
.import-details .check input{width:auto;min-height:auto}
.import-table small{display:block;color:var(--muted);font-size:10px}
.import-update{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;gap:8px;align-items:end;margin-top:16px}
.import-update h2{grid-column:1/-1;margin:0;color:var(--purple);font-size:16px}
.import-update input{min-width:0}
.import-kpi{grid-template-columns:repeat(4,1fr)}

@media(max-width:850px){.import-required{grid-template-columns:1fr}
.import-details{grid-template-columns:1fr}
.import-calc{grid-template-columns:1fr}
.import-calc strong{grid-row:auto}
.import-update{grid-template-columns:1fr}
.import-update button{min-height:42px}
.import-kpi{grid-template-columns:1fr 1fr}
.import-table{min-width:960px}
}

.profit-badges{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}
.profit-badge{background:#fff;border:1px solid var(--border);border-left:5px solid var(--purple);padding:16px}
.profit-badge strong{display:block;color:var(--purple);font-size:13px;margin-bottom:6px}
.profit-badge span{display:block;font-size:20px;font-weight:bold;line-height:1.4}
.profit-badge small{display:block;margin-top:6px;color:var(--muted)}
.profit-money-mobile{display:none}
.profit-table table{min-width:1320px}
.profit-dashboard .panel-title .intake-primary{white-space:nowrap}
@media(max-width:850px){.profit-badges{grid-template-columns:1fr}
}


/* ════════════════════════════════════════════════════════════════
   디자인 v2 — A안 「정돈」 오버레이 · 2026-08-17 클부장
   기존 규칙은 전부 유지하고 이 블록이 뒤에서 겹쳐 입힌다.
   색은 현행 보라(#302448)·청록(#307884) 그대로 · 마감만 올린다.
   ════════════════════════════════════════════════════════════════ */
:root{--pale:#f5f3f9;--border:#e3e1ea;--muted:#6d6880;--danger:#b23a30;--page:#f4f4f8;--r:11px;--card-shadow:0 1px 4px #2b224408}

body{font-family:"Pretendard","Segoe UI","Malgun Gothic",Arial,sans-serif;background:var(--page);color:#26212e}

/* 헤더 — 상단 브랜드 라인 + 둥근 메뉴 */
header{padding:14px 26px}

header::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,#307884,#8f7bc0)}

header{position:sticky}

nav a,.upper-nav a{padding:7px 12px;border-radius:9px}

nav a:hover,.upper-nav a:hover{background:#ffffff14;color:#fff}

nav .active,.upper-nav .nav-upper.active{padding-bottom:7px;border-bottom:0;background:#ffffff22;color:#fff}

.section-tabs{gap:22px}

.section-tabs a{padding:11px 2px;border-bottom:2.5px solid transparent}

.section-tabs a.active{border-bottom:2.5px solid var(--teal);padding-bottom:9px}

/* 본문 · 패널 */
.hero h1{letter-spacing:-.3px}

.panel,.sales-card,.intake-form,.intake-file,.import-form details,.import-required,.import-calc,.import-details fieldset,.profit-badge,.auth-menu-group{border-radius:var(--r)}

.panel{background:#fff;box-shadow:var(--card-shadow)}

.notice,.coverage-notice,.intake-alert,.paste-image-notice,.auth-note{border-radius:9px}

/* 입력 · 버튼 */
input,select,button,textarea{border-radius:8px}

button{box-shadow:0 2px 6px #30244833;font-weight:700}

button:hover{filter:brightness(1.12)}

button.ghost,.filter-reset{box-shadow:none}

.intake-primary{border-radius:8px}

input:focus,select:focus,textarea:focus{outline:2px solid var(--teal);outline-offset:0;border-color:var(--teal)}

/* 표 — 줄무늬 · 호버 · 둥근 래퍼 */
.table-wrap{border:1px solid var(--border);border-radius:9px}


/* 26호: wide tables stay intact; on a phone the edge shadows and guidance
   make the available horizontal scroll explicit without changing columns. */
.table-wrap{max-height:70vh;overflow:auto}

.scroll-hint{display:none}

@media(max-width:640px){.table-wrap{background:linear-gradient(90deg,#fff 30%,rgba(255,255,255,0)) left/34px 100% no-repeat,linear-gradient(90deg,rgba(255,255,255,0),#fff 70%) right/34px 100% no-repeat,radial-gradient(farthest-side at 0 50%,rgba(0,0,0,.16),transparent) left/14px 100% no-repeat,radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.16),transparent) right/14px 100% no-repeat;background-attachment:local,local,scroll,scroll}
.scroll-hint{display:block;margin:0 0 6px;font-size:12px;color:var(--muted);text-align:center;user-select:none}
select,input[type=text],input[type=search]{max-width:100%}
.kpi .val{max-width:100%;overflow:hidden}
.profit-money-desktop{display:none}
.profit-money-mobile{display:inline}
}

thead th{background:var(--pale);color:#4a3f63;border-top:0}

tbody tr:nth-child(even) td{background:#faf9fc}

tr:hover td{background:#f3f0f9}

td,th{padding:9px 12px}

.sharebar,.sharebar i{border-radius:99px}

/* KPI 카드 — 왼쪽 컬러바 */
.kpi{position:relative;border-radius:var(--r);box-shadow:var(--card-shadow);overflow:hidden}

.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(#307884,#302448)}

.kpi .val{letter-spacing:-.5px;font-variant-numeric:tabular-nums}

/* 상태 칩 · 모달 · 신고 버튼 */
.intake-status,.badge,.event,.mixed{border-radius:999px}

.modal{border-radius:13px;overflow:hidden}

.feedback-trigger{font-weight:700}

footer{background:#fff}

/* ── 로그인·비밀번호 화면 — 화려판 (이사님 지시 08-17) ─────────────
   auth 셸(main>.auth-card)에만 적용된다. :has 미지원 구형 브라우저는
   기본 카드로 표시될 뿐 기능엔 지장이 없다. */
body:has(> main > .auth-card){display:flex;flex-direction:column;min-height:100vh;background:linear-gradient(135deg,#191129,#302448 52%,#173a42)}

body:has(> main > .auth-card)::before,body:has(> main > .auth-card)::after{content:"";position:fixed;border-radius:50%;filter:blur(10px);opacity:.5;pointer-events:none;animation:authfloat 14s ease-in-out infinite alternate}

body:has(> main > .auth-card)::before{width:520px;height:520px;left:-140px;top:-160px;background:radial-gradient(circle,#6b53a8 0%,transparent 70%)}

body:has(> main > .auth-card)::after{width:460px;height:460px;right:-120px;bottom:-140px;background:radial-gradient(circle,#307884 0%,transparent 70%);animation-delay:-7s}

@keyframes authfloat{from{transform:translateY(-14px)}
to{transform:translateY(18px)}
}

body:has(> main > .auth-card) main{flex:1;display:grid;place-items:center;width:100%;padding:24px}

main > .auth-card{position:relative;z-index:1;width:min(430px,92vw);max-width:430px;margin:0;padding:40px 36px 32px;background:linear-gradient(180deg,#fffffffa,#f7f5fcf5);border:1px solid #ffffff2e;border-radius:20px;box-shadow:0 24px 70px #00000059,0 2px 0 #ffffff30 inset;backdrop-filter:blur(7px)}

main > .auth-card::before{content:"G";display:block;width:56px;height:56px;margin:0 auto 12px;border-radius:16px;background:linear-gradient(135deg,#302448,#307884);color:#fff;font-size:26px;font-weight:800;line-height:56px;text-align:center;box-shadow:0 8px 22px #30244866}

main > .auth-card h1{margin:0 0 4px;text-align:center;color:#302448;font-size:21px;letter-spacing:-.3px}

main > .auth-card h1::after{content:"골든에프앤디 · 학교급식 업무 시스템";display:block;margin-top:5px;color:#8a83a0;font-size:12.5px;font-weight:400;letter-spacing:0}

main > .auth-card form{margin-top:18px}

main > .auth-card label{display:grid;gap:6px;margin:13px 0;color:#4a3f63;font-size:13px;font-weight:700}

main > .auth-card input,main > .auth-card select{padding:12px 14px;border:1px solid #ddd8e8;border-radius:11px;background:#fff;font-size:15px}

main > .auth-card input:focus{outline:2px solid #307884;border-color:#307884;box-shadow:0 0 0 4px #3078841f}

main > .auth-card button{width:100%;margin-top:16px;padding:13px;border-radius:11px;background:linear-gradient(135deg,#302448,#45336b);font-size:15px;font-weight:800;letter-spacing:.4px;box-shadow:0 10px 24px #3024484d}

main > .auth-card button:hover{filter:brightness(1.18)}

main > .auth-card .auth-note{margin:12px 0 0;border-radius:10px}

body:has(> main > .auth-card) footer{background:transparent;border:0;color:#b9b2ccbb;text-align:center;font-size:11.5px}

/* 49호: 수입재고 이력 열과 일일업무일지 2칸 작성 화면 */
.inventory-history.is-collapsed{display:none}
.inventory-manage-detail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 14px}
.inventory-manage-detail div{padding:9px;border:1px solid var(--border);border-radius:8px;background:var(--pale)}
.inventory-manage-detail dt{font-size:12px;color:var(--muted)}
.inventory-manage-detail dd{margin:4px 0 0;font-weight:700}
.daily-meta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.daily-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.daily-work-cell{border:1px solid var(--border);border-radius:8px;overflow:hidden}
.daily-work-cell>span{display:block;padding:9px 12px;background:var(--purple);color:#fff;font-weight:700}
.daily-yesterday>span{background:#5b6b7a}
.daily-work-cell small{font-weight:400;opacity:.86}
.daily-work-cell textarea{width:100%;border:0;border-radius:0;min-height:190px;resize:vertical}
.daily-note{display:block;margin-top:14px}
.daily-note input{width:100%}
@media(max-width:700px){.daily-meta-grid,.daily-work-grid,.inventory-manage-detail{grid-template-columns:1fr}}

@media(max-width:375px){main > .auth-card{padding:28px 20px 24px}
}

/* 52호: 단가표·행사 시뮬레이션 발표 화면 */
.p52-page{max-width:none}.p52-table-wrap{max-height:72vh}.p52-table{min-width:1780px;border-collapse:separate;border-spacing:0;font-size:12px}.p52-table th{position:sticky;top:0;z-index:1;white-space:nowrap;background:#302448;color:#fff}.p52-table td{white-space:nowrap;text-align:right;padding:8px 9px;border-bottom:1px solid #ddd}.p52-table td:nth-child(2),.p52-table td:nth-child(7),.p52-table td:nth-child(20){text-align:left}.p52-name a{font-weight:800;color:#302448;text-decoration:underline}.p52-factual{background:#fff}.p52-input{background:#fff5bd}.p52-auto{background:#dff0c9}.p52-computed{background:#eee}.p52-secret{background:#f4f4f4;color:#888;font-size:11px}.p52-negative{color:#c62828!important;font-weight:800}.p52-cards{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:12px;margin:15px 0}.p52-card{padding:16px;border:1px solid var(--border);border-radius:10px;background:#fff;box-shadow:0 1px 5px #00000012}.p52-card small{display:block;color:var(--muted);margin-bottom:7px}.p52-card b{font-size:18px}.p52-controls{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.p52-controls label{display:grid;gap:5px;font-size:13px;font-weight:700}.p52-controls input{min-height:34px}.p52-chips{display:flex;gap:6px;flex-wrap:wrap}.p52-chips label{display:block;padding:7px 10px;border:1px solid #b8c5a4;border-radius:16px;background:#eef7e5;cursor:pointer}.p52-best td{background:#dff0c9!important;font-weight:800}.p52-sim .panel{margin-top:14px}@media(max-width:800px){.p52-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.p52-controls{align-items:stretch}.p52-controls>*{width:100%}}

/* 135호: 현황판 일일업무일지의 일자·작성자 구분과 원문 개행 보존 */
.board-daily-day{margin:18px 0 26px;padding-top:4px;border-top:3px solid var(--purple)}
.board-daily-day>h3{margin:10px 0 12px}
.board-daily-person{margin:12px 0;padding:14px;border:1px solid var(--border);border-radius:8px;background:#fff}
.board-daily-person>h4{margin:0 0 10px;font-size:18px}
.board-daily-entry+.board-daily-entry{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}
.board-daily-meta{margin:0 0 8px;color:var(--muted)}
.board-daily-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.board-daily-columns h5{margin:0 0 6px}
.board-daily-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}
@media(max-width:700px){.board-daily-columns{grid-template-columns:1fr}}
.precedent-body{white-space:pre-wrap;overflow-wrap:anywhere}
