@font-face{font-family:'ERP Korean Fallback';src:url('/static/certificate-font.woff') format('woff');font-weight:400;font-display:block}
:root{--bg:#f5f7f8;--card:#fff;--ink:#15221d;--muted:#6c7873;--line:#dfe6e2;--accent:#176b4d;--accent2:#0d5139;--soft:#eaf4ef;--danger:#a83a3a;--shadow:0 8px 28px rgba(25,45,37,.07)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,'Noto Sans KR','Malgun Gothic','ERP Korean Fallback',sans-serif;line-height:1.55}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:baseline;gap:12px}.brand a{font-size:19px;font-weight:800;color:var(--ink);text-decoration:none}.brand span{font-size:12px;color:var(--muted)}nav{display:flex;align-items:center;gap:14px}nav a,.link-btn{color:#46544f;text-decoration:none;font-size:14px}.primary-link{color:var(--accent)!important;font-weight:700}.user-chip{background:var(--soft);color:var(--accent2);padding:5px 10px;border-radius:30px;font-size:13px}.inline{display:inline}.link-btn{border:0;background:none;cursor:pointer;padding:0}.container{max-width:1380px;margin:0 auto;padding:30px 28px 60px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.page-head h1{margin:0 0 4px;font-size:28px}.eyebrow{font-size:13px;font-weight:700;color:var(--accent);letter-spacing:.6px}.muted{color:var(--muted);margin:0}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:var(--shadow);margin-bottom:18px}.card h2{font-size:18px;margin:0 0 14px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:38px;border:1px solid #bdc9c4;background:#fff;color:#27352f;border-radius:8px;padding:8px 14px;text-decoration:none;font-weight:700;cursor:pointer}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.big{min-height:46px;padding:10px 22px}.btn.wide{width:100%}.btn.small{min-height:31px;padding:4px 9px;font-size:12px}.actions{display:flex;gap:8px;align-items:center}.actions.end{justify-content:flex-end;align-self:end}.search-grid,.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.span2{grid-column:span 2}label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:#53605a}input,select,textarea{width:100%;border:1px solid #cdd7d2;background:#fff;border-radius:8px;padding:10px 11px;font:inherit;color:var(--ink)}textarea{resize:vertical}.stack{display:flex;flex-direction:column;gap:14px}.stack-lg{display:flex;flex-direction:column;gap:4px}.section-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.table-card{padding:0;overflow:hidden}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}thead th{background:#f0f4f2;color:#43504b;font-size:12px;white-space:nowrap}.click-row{cursor:pointer}.click-row:hover td{background:#f8fbf9}.sub{font-size:12px;color:var(--muted);margin-top:3px}.empty{text-align:center!important;color:var(--muted);padding:30px!important}.status{display:inline-block;border-radius:30px;padding:3px 8px;font-size:12px;font-weight:700}.status.작성중{background:#f1f1f1}.status.검토중{background:#fff5d9;color:#7c5c00}.status.완료{background:#e5f4ec;color:#176b4d}.icon-btn{border:0;background:none;font-size:23px;cursor:pointer;color:#78847f}.top-gap{margin-top:16px}.form-submit{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.login-wrap{min-height:100vh;display:grid;place-items:center}.login-card{width:min(440px,94vw);background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:var(--shadow)}.login-card h1{margin:10px 0 4px}.login-mark{width:54px;height:54px;border-radius:15px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:900;letter-spacing:1px}.first-run{margin-top:18px;padding:12px;background:#f4f7f5;border-radius:9px;color:#53605a;font-size:13px}.alert{padding:10px 12px;border-radius:8px;margin:14px 0}.danger{background:#fff0f0;color:var(--danger)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.inline-form{display:flex;gap:8px;align-items:end}.chip-list{display:flex;flex-wrap:wrap;gap:8px}.chip{background:var(--soft);padding:5px 10px;border-radius:30px;font-size:13px}.print-sheet{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);padding:34px;max-width:1100px;margin:0 auto 22px}.print-title{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:3px solid #1f2e28;padding-bottom:14px;margin-bottom:16px}.print-title h1{margin:4px 0 0;font-size:29px}.company{font-size:13px;color:#56635d}.docno{text-align:right;font-size:12px;color:#59655f}.docno strong{font-size:15px;color:#111}.meta-table th{background:#f1f4f2;width:10%;white-space:nowrap}.meta-table td{width:23%}.doc-section{margin-top:24px;break-inside:avoid}.doc-section h2{font-size:17px;margin:0 0 9px;border-left:4px solid var(--accent);padding-left:9px}.doc-section h3{font-size:14px;margin:16px 0 7px}.preline{white-space:pre-wrap;min-height:40px}.boxed{border:1px solid var(--line);padding:12px;border-radius:7px}.conclusion{min-height:80px}.result-print th{background:#f1f4f2}.empty-box{border:1px dashed #c9d2ce;color:var(--muted);padding:18px;text-align:center;border-radius:8px}.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.photo-grid figure{margin:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;break-inside:avoid}.photo-grid img{width:100%;height:280px;object-fit:contain;background:#f4f4f4;display:block}.photo-grid figcaption{padding:8px 10px;font-size:12px;color:#59655f}.signature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.signature-box{border:1px solid var(--line);min-height:145px;padding:8px;text-align:center;display:flex;flex-direction:column;align-items:center}.signature-box img{height:60px;max-width:100%;object-fit:contain}.signature-box span,.signature-box small{font-size:10px;color:var(--muted)}.sig-role{width:100%;background:#f1f4f2;font-weight:700;font-size:12px;margin:-8px -8px 5px;padding:4px}.detail-tools{max-width:1100px;margin:0 auto}.sign-layout{display:grid;grid-template-columns:280px 1fr;gap:18px}#signCanvas{display:block;width:100%;max-width:520px;height:180px;border:1px dashed #9aa7a1;border-radius:8px;background:#fff;touch-action:none}
@media screen and (max-width:900px){.topbar{padding:0 14px}.brand span,nav a:not(.primary-link){display:none}.container{padding:20px 12px}.search-grid,.form-grid{grid-template-columns:1fr 1fr}.two-col{grid-template-columns:1fr}.signature-grid{grid-template-columns:repeat(2,1fr)}.sign-layout{grid-template-columns:1fr}.span2{grid-column:span 2}}
@media print{body{background:#fff;font-size:11pt}.no-print,.detail-tools,.topbar{display:none!important}.container{max-width:none;padding:0}.print-sheet{border:0;box-shadow:none;max-width:none;padding:0;margin:0}.print-title h1{font-size:21pt}.photo-grid img{height:230px}.doc-section{page-break-inside:avoid}.signature-grid{grid-template-columns:repeat(4,1fr)}@page{size:A4;margin:12mm}}

/* v4 journal layout */
.template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.template-card{display:flex;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:.15s}.template-card:hover{transform:translateY(-2px);border-color:#9ab9ab}.template-card h2{margin:0 0 4px}.template-card p{margin:0 0 5px;color:var(--muted)}.template-card span{font-size:12px;color:var(--accent);font-weight:700}.template-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--soft);color:var(--accent);font-weight:900;font-size:20px;flex:0 0 auto}.fixed-badge,.lock{display:inline-block;background:#eef3f0;color:#52625b;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700}.lock{padding:2px 7px;margin-left:5px}.fixed-section{background:#fbfcfb}.fixed-text{white-space:pre-wrap;background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px;line-height:1.75;color:#28362f}.operation-box{background:#f8faf9;border:1px solid var(--line);border-radius:9px;padding:15px;margin-bottom:16px}.spec-line{margin-top:8px}.result-entry{border-top:1px solid var(--line);padding-top:16px}.result-head{font-weight:800;margin-bottom:10px}.result-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.upload-zone{margin-top:14px;border:1.5px dashed #aebcb5;border-radius:10px;padding:18px;background:#fbfcfb;cursor:pointer}.upload-zone input{margin-bottom:8px}.upload-zone span{font-weight:400;color:var(--muted)}.mini-photo-list{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.mini-photo-list>div{width:150px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.mini-photo-list img{width:100%;height:90px;object-fit:cover;display:block}.mini-photo-list span{display:block;padding:5px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.judgement{font-weight:800}.judgement.적합{color:#176b4d}.judgement.부적합{color:#a83a3a}.alert.info{background:#eef6ff;color:#2d5679}
.journal-sheet{background:#fff;max-width:900px;margin:0 auto 22px;border:1px solid #bbb;padding:12px 14px 16px;color:#111;font-family:'Malgun Gothic',Arial,'ERP Korean Fallback',sans-serif}.journal-sheet table{border-collapse:collapse;width:100%;table-layout:fixed}.journal-sheet th,.journal-sheet td{border:1px solid #222;padding:7px 8px;font-size:12px;vertical-align:middle}.journal-header .journal-title{font-size:23px;font-weight:800;text-align:center;letter-spacing:4px;height:86px;white-space:nowrap}.journal-header th{text-align:center;background:#fff}.approval-label{width:34px;font-size:14px}.approval-cell{height:60px;text-align:center}.approval-cell img{height:35px;max-width:95px;object-fit:contain;display:block;margin:0 auto}.approval-cell div{font-size:10px}.journal-meta th{width:13%;background:#f6f6f6;text-align:center;white-space:nowrap}.journal-meta td{height:36px}.journal-section-title{border:1px solid #222;border-top:0;text-align:center;font-size:15px;font-weight:800;padding:7px}.journal-body-table th,.journal-result-table .left-head{width:14%;background:#f6f6f6;text-align:center}.journal-method{line-height:1.65;min-height:230px}.evidence-title{border-left:1px solid #222;border-right:1px solid #222;text-align:left;font-weight:700;padding:7px 9px}.journal-photo-grid{border:1px solid #222;border-top:0;padding:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.journal-photo-grid figure{margin:0;border:1px solid #bbb;break-inside:avoid}.journal-photo-grid img{width:100%;height:215px;object-fit:contain;display:block;background:#f6f6f6}.journal-photo-grid figcaption{font-size:10px;text-align:center;padding:4px}.journal-photo-grid.count-1{grid-template-columns:1fr}.journal-photo-grid.count-1 img{height:320px}.journal-result-table th{text-align:center;background:#f6f6f6}.journal-result-table td{text-align:center}.journal-result-table tr:first-child td{text-align:left}.result-value{font-size:15px!important;font-weight:800}.final-result{font-size:15px!important;font-weight:700}.check-choice.selected{border:2px solid #111;border-radius:50%;padding:2px 8px}.journal-memo{border:1px solid #222;border-top:0;padding:8px;font-size:11px}.journal-footer{text-align:center;font-size:14px;font-weight:800;padding:12px 0 0}.photo-manage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.photo-manage{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.photo-manage img{width:100%;height:150px;object-fit:contain;background:#f5f5f5;display:block}.photo-manage>div{display:flex;justify-content:space-between;gap:6px;align-items:center;padding:7px;font-size:11px}.link-danger{border:0;background:none;color:var(--danger);font-weight:700;cursor:pointer}
@media screen and (max-width:900px){.template-grid{grid-template-columns:1fr}.result-grid{grid-template-columns:1fr 1fr}.photo-manage-grid{grid-template-columns:1fr 1fr}.journal-sheet{overflow:auto}.journal-sheet>table,.journal-section-title,.evidence-title,.journal-photo-grid,.journal-memo,.journal-footer{min-width:720px}}
@media print{.journal-sheet{max-width:none;border:0;padding:0;margin:0;font-size:9.5pt}.journal-header{break-inside:avoid;page-break-inside:avoid}.journal-header .journal-title{font-size:19pt;height:72px;white-space:nowrap;letter-spacing:3px}.journal-sheet th,.journal-sheet td{font-size:9pt;padding:5px 6px}.journal-method{min-height:180px;line-height:1.5}.journal-photo-grid img{height:175px}.journal-photo-grid.count-1 img{height:260px}.journal-footer{font-size:11pt}.journal-sheet{page-break-after:auto}}

/* v4.1 polish: journal chooser + cumulative photo picker */
.journal-picker-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:2px 0 24px;padding:26px 28px;border:1px solid #d8e3de;border-radius:20px;background:linear-gradient(135deg,#ffffff 0%,#f1f7f4 100%);box-shadow:0 10px 32px rgba(25,45,37,.06)}
.journal-picker-hero h1{font-size:30px;line-height:1.25;margin:4px 0 8px;letter-spacing:-.8px}.journal-picker-hero p{margin:0;max-width:760px;color:#607069}.picker-help{flex:0 0 auto;background:#fff;border:1px solid #d8e3de;border-radius:999px;padding:8px 13px;font-size:13px;color:#607069}.picker-help strong{color:var(--accent);font-size:16px;margin:0 2px}
.journal-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.journal-picker-card{position:relative;display:flex;gap:18px;min-height:185px;padding:24px;background:#fff;border:1px solid #dce5e1;border-radius:18px;color:var(--ink);text-decoration:none;box-shadow:0 8px 26px rgba(25,45,37,.055);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;overflow:hidden}.journal-picker-card:after{content:"";position:absolute;right:-42px;bottom:-42px;width:150px;height:150px;border-radius:50%;background:#f1f7f4;transition:transform .16s ease}.journal-picker-card:hover{transform:translateY(-3px);border-color:#8db5a5;box-shadow:0 14px 34px rgba(25,45,37,.10)}.journal-picker-card:hover:after{transform:scale(1.08)}.picker-icon{position:relative;z-index:1;width:58px;height:58px;border-radius:16px;display:grid;place-items:center;flex:0 0 auto;font-weight:900;font-size:18px;letter-spacing:-1px}.picker-icon.qualitative{background:#e8f4ee;color:#176b4d}.picker-icon.numeric{background:#eef2fb;color:#315a9d}.picker-main{position:relative;z-index:1;flex:1;min-width:0}.picker-topline{display:flex;justify-content:space-between;align-items:center}.picker-type{font-size:12px;font-weight:800;color:#64736d;background:#f4f7f5;border-radius:999px;padding:4px 9px}.picker-arrow{font-size:24px;line-height:1;color:#7b8a84;transition:transform .16s ease}.journal-picker-card:hover .picker-arrow{transform:translateX(4px);color:var(--accent)}.journal-picker-card h2{font-size:24px;margin:13px 0 12px;letter-spacing:-.4px}.picker-spec{display:flex;align-items:center;gap:9px;margin-bottom:7px}.picker-spec span{font-size:12px;color:#738079}.picker-spec strong{font-size:14px}.journal-picker-card p{margin:0;color:#7a8681;font-size:13px}
.photo-upload-card .section-head{align-items:center}.photo-counter{display:inline-flex;align-items:center;justify-content:center;min-width:68px;height:34px;padding:0 12px;border-radius:999px;background:var(--soft);color:var(--accent2);font-weight:900;font-size:13px}.photo-preview-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:16px 0}.photo-preview-item{min-width:0;border:1px solid #dce5e1;border-radius:12px;background:#fff;overflow:hidden;transition:opacity .15s ease,filter .15s ease}.photo-preview-image{position:relative;height:128px;background:#f4f7f5}.photo-preview-image img{width:100%;height:100%;object-fit:cover;display:block}.photo-remove{position:absolute;top:7px;right:7px;width:28px;height:28px;border:0;border-radius:50%;background:rgba(20,28,25,.78);color:#fff;font-size:20px;line-height:26px;display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.18)}.photo-remove:hover{background:#a83a3a}.photo-preview-name{padding:8px 9px 2px;font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-preview-state{padding:0 9px 8px;font-size:10px;color:#718079}.photo-preview-state.pending{color:#176b4d;font-weight:700}.photo-preview-item.pending-delete{opacity:.38;filter:grayscale(1)}.photo-preview-item.pending-delete:after{content:"저장 시 삭제";display:block;margin:-2px 9px 8px;font-size:10px;font-weight:800;color:#a83a3a}.photo-dropzone{margin-top:10px;border:1.5px dashed #a9bbb3;border-radius:14px;padding:18px 20px;background:#fbfdfc;display:flex;flex-direction:row;align-items:center;gap:13px;cursor:pointer;transition:border-color .15s ease,background .15s ease}.photo-dropzone:hover{border-color:#5f947e;background:#f5faf7}.photo-dropzone input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.photo-drop-icon{width:42px;height:42px;border-radius:12px;background:#e9f4ef;color:#176b4d;display:grid;place-items:center;font-size:27px;font-weight:400;flex:0 0 auto}.photo-dropzone strong{display:block;color:#26362f;font-size:14px}.photo-dropzone span{display:block;color:#7a8781;font-size:12px;font-weight:400;margin-top:2px}.photo-note{margin:9px 2px 0;color:#7b8782;font-size:11px}
.journal-photo-grid.count-2{grid-template-columns:repeat(2,minmax(0,1fr))}.journal-photo-grid.count-3{grid-template-columns:repeat(3,minmax(0,1fr))}.journal-photo-grid.count-4{grid-template-columns:repeat(2,minmax(0,1fr))}.journal-photo-grid.count-5{grid-template-columns:repeat(3,minmax(0,1fr))}.journal-photo-grid.count-3 img,.journal-photo-grid.count-5 img{height:180px}
@media screen and (max-width:1000px){.photo-preview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media screen and (max-width:900px){.journal-picker-grid{grid-template-columns:1fr}.journal-picker-hero{align-items:flex-start;flex-direction:column}.photo-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.journal-photo-grid.count-3,.journal-photo-grid.count-5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media screen and (max-width:560px){.journal-picker-hero{padding:20px}.journal-picker-hero h1{font-size:25px}.journal-picker-card{padding:19px;min-height:165px}.picker-icon{width:50px;height:50px}.journal-picker-card h2{font-size:21px}.photo-preview-grid{grid-template-columns:1fr 1fr}.photo-dropzone{padding:14px}}
.evidence-title{display:flex;align-items:center;justify-content:space-between}.evidence-count{font-size:11px;font-weight:700;color:#66736d}.journal-photo-link{display:block;text-decoration:none}.journal-photo-link img{transition:filter .15s ease}.journal-photo-link:hover img{filter:brightness(.96)}

/* v4.2 photo slots and template editing */
.photo-label-guide{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding:10px 12px;background:#f7faf8;border:1px solid var(--line);border-radius:10px;font-size:12px;color:#64726c}.photo-label-guide span{display:inline-flex;padding:4px 9px;border-radius:999px;background:#eaf4ef;color:#176b4d;font-weight:800}.photo-slot-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:16px 0}.photo-slot{min-width:0;border:1px solid #dce5e1;border-radius:12px;background:#fff;padding-bottom:10px;overflow:hidden}.slot-image-wrap{position:relative;height:135px;background:#f4f7f5}.slot-preview{width:100%;height:100%;object-fit:cover;display:block}.slot-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#87948e}.slot-empty strong{font-size:24px;color:#bcc7c2}.slot-empty span{font-size:11px}.slot-file-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.slot-file-name{padding:8px 9px 3px;font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slot-label{padding:0 9px;font-size:11px;gap:4px}.slot-label select,.slot-label input{padding:7px 8px;font-size:12px}.slot-state{padding:6px 9px 0;font-size:10px;color:#78857f}.slot-state.pending{color:#176b4d;font-weight:800}.slot-restore{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid #aebcb6;background:#fff;border-radius:7px;padding:7px 9px;font-size:11px;font-weight:800;cursor:pointer}.journal-method-name{margin-bottom:10px;font-size:13px}.journal-method .preline{min-height:0}.journal-photo-grid figcaption strong{font-size:11px}.photo-manage>div span{display:flex;flex-direction:column;gap:2px}.photo-manage>div small{display:block;color:var(--muted);font-size:10px;font-weight:400}.field-help{font-size:11px;color:var(--muted);font-weight:400}.form-intro{margin:-6px 0 10px}
@media screen and (max-width:1100px){.photo-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media screen and (max-width:700px){.photo-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{.journal-photo-grid figcaption strong{font-size:9pt}}

.print-settings-add{margin-top:8px;padding-top:18px;border-top:1px solid var(--line)}.print-settings-add h3{margin:0 0 12px;font-size:15px}.print-setting-grid input{font-variant-numeric:tabular-nums}

/* v5.0 reliable photo UI */
[hidden]{display:none!important}
#photoInputDepot,.frozen-photo-input{display:none!important}
#photoPickerHost{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
.slot-label-fieldset{border:0;margin:0;padding:0 9px;min-width:0}.slot-label-fieldset legend{font-size:11px;font-weight:700;margin:0 0 5px;padding:0}.photo-label-radios{display:flex;flex-wrap:wrap;gap:5px}.photo-label-radio{position:relative;display:inline-flex;cursor:pointer}.photo-label-radio input{position:absolute;opacity:0;pointer-events:none}.photo-label-radio span{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:5px 9px;border:1px solid #b9c8c1;border-radius:8px;background:#fff;color:#415048;font-size:11px;font-weight:700;transition:.12s ease}.photo-label-radio input:checked+span{border-color:#176b4d;background:#e7f3ed;color:#0f5c41;box-shadow:inset 0 0 0 1px #176b4d}.photo-label-radio input:focus-visible+span{outline:2px solid #76a892;outline-offset:2px}.photo-slot .slot-clear[hidden],.photo-slot .slot-restore[hidden],.photo-slot .slot-preview[hidden],.photo-slot .slot-empty[hidden]{display:none!important}
.photo-slot{position:relative}.photo-slot .slot-state{min-height:20px}.photo-dropzone{position:relative}

/* v5.1 stable photo-slot controls */
.btn.danger{background:#fff0f0;border-color:#dfb0b0;color:#a12626}.btn.danger:hover{background:#ffe5e5}
.slot-file-input-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
.slot-pick-btn{display:block;margin:7px 9px 0;padding:7px 8px;border:1px solid #b9c8c1;border-radius:8px;background:#f8fbf9;text-align:center;font-size:11px;font-weight:800;color:#176b4d;cursor:pointer}
.slot-pick-btn:hover{background:#eaf4ef}.slot-label-select{display:flex;flex-direction:column;gap:4px;padding:7px 9px 0;font-size:11px;font-weight:700}.slot-label-select select,.slot-label-select input{width:100%;padding:7px 8px;font-size:12px;border:1px solid #c8d2ce;border-radius:7px;background:#fff}.bulk-photo-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}.photo-slot[data-active="0"] .slot-clear{display:none!important}
@media print{.journal-header .journal-title{white-space:nowrap;word-break:keep-all;overflow:hidden}.journal-header td,.journal-header th{break-inside:avoid;page-break-inside:avoid}}

.version-chip{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;background:#eef4f1;color:#356a56;font-size:10px;font-weight:800;letter-spacing:.2px}

/* v5.4 - A4 one-page print fit and stable evidence images */
@media print {
  html,body{width:100%!important;height:auto!important;margin:0!important;padding:0!important;background:#fff!important}
  .container{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
  .journal-sheet{width:100%!important;max-width:none!important;box-sizing:border-box!important;border:0!important;margin:0!important;padding-left:0!important;padding-right:0!important;padding-bottom:0!important;overflow:visible!important}
  .journal-sheet table{break-inside:avoid-page;page-break-inside:avoid}
  .journal-header .journal-title{height:58px!important;font-size:17pt!important;line-height:1.05!important;letter-spacing:2.4px!important}
  .journal-header th,.journal-header td{padding:3px 4px!important;font-size:7.7pt!important}
  .approval-cell{height:42px!important}.approval-cell img{height:28px!important}
  .journal-meta th,.journal-meta td{padding:3px 4px!important;font-size:7.7pt!important;height:24px!important}
  .journal-section-title{font-size:10pt!important;padding:4px!important}
  .journal-body-table th,.journal-body-table td{padding:4px 5px!important;font-size:7.5pt!important}
  .journal-method{min-height:0!important;line-height:1.28!important}
  .journal-method-name{margin-bottom:4px!important}
  .evidence-title{padding:4px 6px!important;font-size:8pt!important;break-after:avoid-page;page-break-after:avoid}
  .journal-photo-grid{padding:5px!important;gap:5px!important;break-inside:avoid-page!important;page-break-inside:avoid!important}
  .journal-photo-grid figure{break-inside:avoid-page!important;page-break-inside:avoid!important}
  .journal-photo-grid img{height:128px!important;object-fit:contain!important;background:#fff!important}
  .journal-photo-grid.count-1 img{height:205px!important}
  .journal-photo-grid.count-3 img,.journal-photo-grid.count-4 img,.journal-photo-grid.count-5 img{height:100px!important}
  .journal-photo-grid figcaption{font-size:7.5pt!important;padding:2px!important;line-height:1.1!important}
  .journal-result-table{break-inside:avoid-page!important;page-break-inside:avoid!important}
  .journal-result-table th,.journal-result-table td{padding:3px 4px!important;font-size:7.7pt!important;line-height:1.18!important}
  .result-value,.final-result{font-size:8.5pt!important}
  .check-choice.selected{border-width:1px!important;padding:1px 5px!important}
  .journal-memo{padding:4px!important;font-size:7.5pt!important;break-inside:avoid-page!important}
  .journal-footer{font-size:8.5pt!important;padding:4px 0 0!important;line-height:1.1!important;break-before:avoid-page!important;page-break-before:avoid!important}
}

/* v5.5 - offline image cropper */
.slot-action-row{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:stretch;margin:7px 9px 0}.slot-action-row .slot-pick-btn{margin:0}.slot-crop-btn{min-width:58px;border:1px solid #9eb9ad;border-radius:8px;background:#eef7f2;color:#176b4d;font-size:11px;font-weight:800;cursor:pointer;padding:6px 8px}.slot-crop-btn:hover{background:#dff0e7}.crop-open{overflow:hidden}.crop-modal{position:fixed;inset:0;z-index:9999;background:rgba(15,24,20,.72);display:flex;align-items:center;justify-content:center;padding:18px}.crop-dialog{width:min(980px,96vw);max-height:94vh;overflow:auto;background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.32);padding:18px}.crop-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.crop-head h3{margin:0;font-size:21px}.crop-head p{margin:3px 0 0;color:var(--muted);font-size:12px}.crop-close{border:0;background:#eef2f0;width:36px;height:36px;border-radius:50%;font-size:24px;line-height:1;cursor:pointer;color:#425049}.crop-tools{display:grid;grid-template-columns:180px 1fr auto;gap:12px;align-items:end;margin-bottom:12px}.crop-tools label{font-size:12px}.crop-tool-note{align-self:center;color:#64736c;font-size:12px;line-height:1.45}.crop-canvas-shell{background:#27302c;border-radius:12px;padding:12px;display:flex;justify-content:center;align-items:center;min-height:300px;overflow:hidden}.crop-canvas-shell canvas{display:block;max-width:100%;max-height:62vh;width:auto;height:auto;background:#fff;cursor:crosshair;touch-action:none;box-shadow:0 0 0 1px rgba(255,255,255,.15);user-select:none}.crop-help{margin:9px 2px 0;color:#718079;font-size:11px}.crop-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}@media screen and (max-width:700px){.crop-modal{padding:6px}.crop-dialog{padding:12px;border-radius:12px}.crop-tools{grid-template-columns:1fr}.crop-canvas-shell{padding:6px;min-height:220px}.crop-canvas-shell canvas{max-height:50vh}.slot-action-row{grid-template-columns:1fr}.slot-crop-btn{min-height:34px}}


/* v5.7 - prevent right-side clipping in browser print/PDF.
   The responsive max-width:900px rule sets min-width:720px, which can also
   match Chrome's print layout and overflow the A4 printable area. Reset every
   printable child to the actual @page content box. */
@media print {
  html,body{
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    overflow:visible!important;
  }
  .container{
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    overflow:visible!important;
  }
  .journal-sheet{
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    overflow:visible!important;
    box-sizing:border-box!important;
  }
  .journal-sheet,
  .journal-sheet *{
    box-sizing:border-box!important;
  }
  .journal-sheet>table,
  .journal-section-title,
  .evidence-title,
  .journal-photo-grid,
  .journal-memo,
  .journal-footer{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  .journal-sheet table{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
  }
  .journal-sheet th,
  .journal-sheet td{
    min-width:0!important;
    max-width:none!important;
    overflow-wrap:anywhere!important;
  }
  .journal-header .journal-title{
    overflow:visible!important;
  }
  .journal-photo-grid{
    overflow:hidden!important;
  }
  .journal-photo-grid figure,
  .journal-photo-grid a,
  .journal-photo-grid img{
    min-width:0!important;
    max-width:100%!important;
  }
  .journal-photo-grid img{
    width:100%!important;
  }
}


/* v5.10 - use the full A4 page height without creating a second page.
   The form keeps the configured page margins; short journals grow mainly in
   the evidence/photo area, while the footer is anchored near the page bottom. */
@media print {
  .journal-sheet{
    min-height:var(--print-usable-height,275.5mm)!important;
    display:flex!important;
    flex-direction:column!important;
  }
  .journal-sheet > .journal-header,
  .journal-sheet > .journal-meta,
  .journal-sheet > .journal-section-title,
  .journal-sheet > .journal-body-table,
  .journal-sheet > .evidence-title,
  .journal-sheet > .journal-result-table,
  .journal-sheet > .journal-memo{
    flex:0 0 auto!important;
  }
  .journal-header .journal-title{
    height:64px!important;
    font-size:18pt!important;
  }
  .journal-header th,.journal-header td{
    padding:4px 5px!important;
    font-size:8.1pt!important;
  }
  .approval-cell{height:47px!important}
  .journal-meta th,.journal-meta td{
    padding:4px 5px!important;
    font-size:8.1pt!important;
    height:27px!important;
  }
  .journal-section-title{font-size:10.5pt!important;padding:5px!important}
  .journal-body-table th,.journal-body-table td{
    padding:5px 6px!important;
    font-size:8.15pt!important;
  }
  .journal-method{line-height:1.40!important}
  .journal-method-name{font-size:9.2pt!important;margin-bottom:5px!important}
  .evidence-title{padding:5px 7px!important;font-size:8.5pt!important}

  /* Two-photo microbiology journals are the common one-page case. */
  .journal-photo-count-2 > .journal-photo-grid{
    flex:1 1 58mm!important;
    min-height:58mm!important;
    max-height:68mm!important;
    grid-auto-rows:minmax(0,1fr)!important;
    align-items:stretch!important;
  }
  .journal-photo-count-1 > .journal-photo-grid{
    flex:1 1 76mm!important;
    min-height:70mm!important;
    max-height:86mm!important;
    grid-auto-rows:minmax(0,1fr)!important;
    align-items:stretch!important;
  }
  .journal-photo-count-3 > .journal-photo-grid,
  .journal-photo-count-4 > .journal-photo-grid,
  .journal-photo-count-5 > .journal-photo-grid{
    flex:1 1 42mm!important;
    min-height:38mm!important;
    max-height:52mm!important;
    grid-auto-rows:minmax(0,1fr)!important;
    align-items:stretch!important;
  }
  .journal-photo-grid figure{
    height:100%!important;
    min-height:0!important;
    display:flex!important;
    flex-direction:column!important;
  }
  .journal-photo-grid .journal-photo-link{
    flex:1 1 auto!important;
    min-height:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:hidden!important;
  }
  .journal-photo-grid img,
  .journal-photo-grid.count-1 img,
  .journal-photo-grid.count-2 img,
  .journal-photo-grid.count-3 img,
  .journal-photo-grid.count-4 img,
  .journal-photo-grid.count-5 img{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    object-fit:contain!important;
    background:#fff!important;
  }
  .journal-photo-grid figcaption{
    flex:0 0 auto!important;
    font-size:8.2pt!important;
    padding:3px!important;
  }
  .journal-result-table th,.journal-result-table td{
    padding:4px 5px!important;
    font-size:8.1pt!important;
    line-height:1.25!important;
  }
  .journal-footer{
    flex:0 0 auto!important;
    margin-top:auto!important;
    padding:5px 0 0!important;
    font-size:9.3pt!important;
  }
}

/* v5.15 - manufacturing / inventory pilot */
.inventory-summary,.batch-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.inventory-summary>div,.batch-meta>div{background:#f8fbf9;border:1px solid var(--line);border-radius:10px;padding:14px}.inventory-summary span,.batch-meta span{display:block;color:var(--muted);font-size:12px;margin-bottom:3px}.inventory-summary strong,.batch-meta strong{font-size:18px}.inventory-search{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:12px;align-items:end}.inventory-section-head{padding:18px 20px 12px}.inventory-section-head h2{margin:0 0 2px}.num{text-align:right!important;font-variant-numeric:tabular-nums}.warn-text{color:#9b5a00!important;font-weight:700}.check-line{display:flex;flex-direction:row;align-items:center;gap:7px}.check-line input{width:auto}.stock-status{display:inline-block;border-radius:999px;padding:4px 9px;font-size:12px;background:#f0f1f1;color:#59645f}.stock-status.done{background:#e5f4ec;color:#176b4d}.stock-status.draft{background:#fff5d9;color:#7c5c00}.rm-compare{display:flex;align-items:center;gap:12px;border-left:5px solid #aab6b1}.rm-compare strong{white-space:nowrap}.rm-compare.same{background:#eaf7ef;border-left-color:#198754}.rm-compare.same span{color:#176b4d;font-weight:700}.rm-compare.different{background:#fff4e5;border-left-color:#d27a00}.rm-compare.different span{color:#8c5200;font-weight:700}.usage-table select,.usage-table input{min-width:120px}.link-chip{text-decoration:none;color:var(--accent2);border:1px solid #c8ded4}.link-chip:hover{background:#dcefe6}
@media screen and (max-width:900px){.inventory-summary,.batch-meta{grid-template-columns:1fr 1fr}.inventory-search{grid-template-columns:1fr}.page-head>.actions{flex-wrap:wrap}}
@media screen and (max-width:600px){.inventory-summary,.batch-meta{grid-template-columns:1fr}.rm-compare{align-items:flex-start;flex-direction:column}}

/* v5.16 - in-app manufacturing record + live stock ledger */
.inventory-search-wide{grid-template-columns:minmax(280px,1fr) 180px auto}.category-chip{display:inline-block;padding:3px 8px;border-radius:999px;background:#edf3f0;font-size:11px;font-weight:800;color:#506159}.record-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.record-tabs a{display:inline-flex;padding:8px 12px;background:#fff;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:#3d4b45;font-weight:800;font-size:13px}.record-tabs a:hover{border-color:#8db6a5;color:var(--accent)}.record-section{scroll-margin-top:92px}.record-savebar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;background:#fbfdfc;border-top:1px solid var(--line)}.record-savebar span{font-size:12px;color:var(--muted)}.usage-edit-table{min-width:1650px}.usage-edit-table th,.usage-edit-table td{padding:8px}.usage-edit-table input,.usage-edit-table select{padding:7px 8px;font-size:12px}.usage-edit-table .num-input{min-width:88px;width:92px;text-align:right}.usage-edit-table .unit-input{min-width:58px;width:64px}.compact-input{width:145px!important;padding:6px 8px!important}.row-delete{width:28px;height:28px;border-radius:50%;border:1px solid #d5ddd9;background:#fff;color:#7a8580;cursor:pointer;font-size:18px;line-height:24px}.row-delete:hover{background:#fff0f0;color:#a83a3a;border-color:#e6bbbb}.sync-ok{display:inline-block;background:#e4f4ea;color:#176b4d;border-radius:999px;padding:3px 7px;font-size:11px;font-weight:800;white-space:nowrap}.sync-wait{display:inline-block;background:#f2f2f2;color:#6f7773;border-radius:999px;padding:3px 7px;font-size:11px;font-weight:800;white-space:nowrap}.template-choice{display:flex;flex-direction:row;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:10px;padding:12px 14px}.template-choice input{width:auto;margin-top:3px}.template-choice span{display:flex;flex-direction:column;gap:2px}.template-choice small{font-weight:400;color:var(--muted)}.callout{padding:13px 14px;border-radius:10px;background:#f3f8f5;border:1px solid #d9e8e1;display:flex;flex-direction:column;gap:3px}.callout span{font-size:12px;color:#66736d}.audit-list{display:flex;flex-direction:column;gap:9px;max-height:330px;overflow:auto}.audit-list>div{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding-bottom:8px;border-bottom:1px solid var(--line)}.audit-list strong{font-size:13px}.audit-list span{font-size:12px;color:#57645f}.audit-list small{grid-column:2;grid-row:1 / span 2;color:#8a9490;font-size:10px;white-space:nowrap}.danger-btn{border-color:#d9a2a2!important;color:#9b3636!important}.danger-btn:hover{background:#fff0f0!important}#processTable{min-width:1100px}#processTable textarea{min-width:380px}.record-section a{color:var(--accent2)}
@media screen and (max-width:900px){.inventory-search-wide{grid-template-columns:1fr 1fr}.record-savebar{align-items:flex-start;flex-direction:column}.audit-list>div{grid-template-columns:1fr}.audit-list small{grid-column:1;grid-row:auto}.record-tabs{position:static}.compact-input{width:130px!important}}

/* v35: manufacturing signature fields */
.manufacturing-signature-field{min-width:0}.manufacturing-signature-controls{display:flex;gap:6px;align-items:center}.manufacturing-signature-select{min-width:0;flex:1}.manufacturing-signature-preview{min-height:36px;display:flex;align-items:center;justify-content:center;margin-top:5px;border:1px dashed #cbd5e1;border-radius:7px;background:#fff}.manufacturing-signature-preview:empty:before{content:'서명 미선택';font-size:11px;color:#94a3b8}.manufacturing-signature-preview img{max-width:112px;max-height:34px;object-fit:contain}.manufacturing-sign-modal{width:min(620px,94vw)}#manufacturingSignCanvas{display:block;width:100%;height:170px;border:1px solid #94a3b8;border-radius:8px;background:#fff;touch-action:none;margin-top:10px}.manufacturing-sign-actions{gap:8px}.signature-help{font-size:12px;color:#64748b;margin-top:7px;line-height:1.5}.usage-table .manufacturing-signature-field,.pack-table .manufacturing-signature-field{padding:0;gap:3px}.usage-table .manufacturing-signature-preview,.pack-table .manufacturing-signature-preview{min-height:28px}.usage-table .manufacturing-signature-preview img,.pack-table .manufacturing-signature-preview img{max-height:27px}


/* v41 - easier journal selection / row navigation */
.record-check,.journal-check,.quality-check,#selectAllRecords,#journalSelectAll,#qualitySelectAll{
  width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;
  padding:0!important;margin:0!important;cursor:pointer;accent-color:var(--accent);
}
.ql-table .click-row,.table-card .click-row{cursor:pointer}
.ql-table .click-row:hover td,.table-card .click-row:hover td{background:#f3f8f5}
.ql-table .click-row:focus-visible,.table-card .click-row:focus-visible{outline:2px solid #5f9b82;outline-offset:-2px}

/* v41 - use more of the A4 sheet while keeping dense photo journals on one page */
@media print {
  .journal-header .journal-title{height:68px!important;font-size:19pt!important;line-height:1.08!important}
  .journal-header th,.journal-header td{padding:4.5px 5.5px!important;font-size:8.45pt!important}
  .approval-cell{height:49px!important}.approval-cell img{height:31px!important}
  .journal-meta th,.journal-meta td{padding:4.5px 5.5px!important;font-size:8.45pt!important;height:28px!important}
  .journal-section-title{font-size:10.8pt!important;padding:5.5px!important}
  .journal-body-table th,.journal-body-table td{padding:5.5px 6.5px!important;font-size:8.45pt!important}
  .journal-method{line-height:1.43!important}
  .journal-method-name{font-size:9.4pt!important;margin-bottom:5px!important}
  .journal-result-table th,.journal-result-table td{padding:4.5px 5.5px!important;font-size:8.45pt!important;line-height:1.28!important}
  .result-value,.final-result{font-size:9.1pt!important}
  .journal-footer{font-size:9.5pt!important}

  /* Journals without evidence photos have the most unused lower space. */
  .journal-photo-count-0 .journal-header .journal-title{height:73px!important;font-size:20pt!important}
  .journal-photo-count-0 .journal-header th,.journal-photo-count-0 .journal-header td,
  .journal-photo-count-0 .journal-meta th,.journal-photo-count-0 .journal-meta td{font-size:8.9pt!important;padding:5px 6px!important}
  .journal-photo-count-0 .journal-meta th,.journal-photo-count-0 .journal-meta td{height:30px!important}
  .journal-photo-count-0 .journal-body-table th,.journal-photo-count-0 .journal-body-table td{font-size:8.85pt!important;padding:6px 7px!important}
  .journal-photo-count-0 .journal-method{line-height:1.50!important;min-height:90mm!important}
  .journal-photo-count-0 .journal-result-table th,.journal-photo-count-0 .journal-result-table td{font-size:8.9pt!important;padding:5px 6px!important;line-height:1.32!important}
}

/* v42 - manufacturing and inventory are separate; action buttons stay on one line */
.page-head-actions{align-items:flex-start}
.page-actions{flex-wrap:wrap;justify-content:flex-end;align-content:flex-start}
.page-actions .btn,.page-head>.actions .btn{white-space:nowrap;word-break:keep-all;line-height:1.2;min-width:max-content}
.manufacturing-search{grid-template-columns:minmax(320px,1fr) auto}
.ledger-overview .btn{white-space:nowrap}
@media screen and (max-width:980px){.page-head-actions{flex-direction:column}.page-head-actions>.actions{width:100%;justify-content:flex-start}.manufacturing-search{grid-template-columns:1fr}.inventory-search-wide{grid-template-columns:1fr 1fr}.inventory-search-wide .actions{grid-column:1/-1;justify-content:flex-start}}
@media screen and (max-width:640px){.inventory-search-wide{grid-template-columns:1fr}.page-actions{width:100%}.page-actions .btn{flex:1 1 auto;min-width:0}}

/* v51 - quality inspector/tester default lock */
.fixed-quality-inspector[readonly]{background:#f3f6f4!important;color:#34423c!important;cursor:default;font-weight:700}
.fixed-quality-inspector.inspector-editing{background:#fff!important;color:inherit!important;box-shadow:0 0 0 2px rgba(33,111,78,.14);cursor:text}

/* v51 - uploaded concentrate manufacturing grid */
.source-grid-card{padding:14px}.source-sheet-scroll{overflow:auto;max-height:72vh;border:2px solid #222;background:#fff}.source-sheet-grid{border-collapse:collapse;min-width:1180px;width:100%;table-layout:fixed}.source-sheet-grid td{border:1px solid #666;padding:2px 3px;vertical-align:middle;font-size:11px;line-height:1.25;min-width:48px}.source-sheet-grid td.source-editable{background:#fff8cf}.source-sheet-grid .record-field{margin:0}.source-sheet-grid .record-field .field-label,.source-sheet-grid .record-field .field-sync-note{display:none}.source-sheet-grid input,.source-sheet-grid select,.source-sheet-grid textarea{width:100%;min-width:42px;padding:3px 4px;border:1px solid #d2b95d;background:#fffdf0;font-size:11px;box-sizing:border-box}.source-sheet-grid .signature-picker{min-width:70px}.source-fixed{white-space:pre-wrap;word-break:keep-all}

/* v67 */
.ccp-linked-readonly{background:#e8f2f7!important;color:#35576b!important;border-color:#b8d2df!important}.ccp-linked-readonly.ccp-unlocked{background:#fff8dc!important;color:#222!important}.general-result-control{display:grid;grid-template-columns:140px 1fr;gap:6px}.general-result-control select,.general-result-control input{width:100%}

/* v69: retain readable navigation on laptops and narrower screens. */
@media screen {
  .topbar{height:auto;min-height:68px;flex-wrap:wrap;gap:8px 20px;padding-top:10px;padding-bottom:10px}
  .topbar .brand{flex-shrink:0;flex-wrap:wrap}
  .topbar .brand a,.topbar nav a,.topbar .user-chip,.topbar .link-btn{white-space:nowrap}
  .topbar nav{flex-wrap:wrap;gap:8px 14px;min-width:0}
  .topbar nav a:not(.primary-link){display:inline-flex}
  .status{white-space:nowrap;flex-shrink:0}
}

/* v76: login company branding */
.login-company-logo{display:block;width:100%;height:auto;max-width:100%;margin:0 auto}.login-card h1{text-align:center;font-size:28px;line-height:1.3;margin:8px 0 10px}.login-description{text-align:center;font-size:14px}.login-card{max-width:100%}@media screen and (max-width:480px){.login-card{padding:24px}.login-card h1{font-size:25px}}

.company-brand-logo{display:block;width:100%;height:auto}.login-card h1,.brand .system-name{color:#000}.topbar .brand{align-items:center}.topbar .company-home{display:block;width:145px;flex:none}.topbar .system-name{white-space:nowrap}.topbar{min-height:76px}@media screen and (max-width:480px){.topbar .company-home{width:130px}.topbar .brand{gap:9px}.topbar .system-name{font-size:17px}}

/* v78: compact brand and permission-aware top menus */
.topbar{height:auto;min-height:82px;padding:10px 24px;gap:16px}.topbar .brand{gap:20px;flex-wrap:nowrap}.topbar .company-home{width:190px}.topbar .system-name{display:block;width:105px;font-size:0}.system-brand-logo{display:block;width:100%;height:auto}.topbar .brand .version-chip{font-size:11px;white-space:nowrap}.main-nav{gap:7px;flex-wrap:wrap}.main-nav>a,.nav-menu>summary{font-size:14px;padding:9px 11px;border-radius:7px;white-space:nowrap}.nav-menu{position:relative}.nav-menu>summary{list-style:none;cursor:pointer;color:#46544f}.nav-menu>summary::-webkit-details-marker{display:none}.nav-menu>summary:after{content:' ▾';font-size:10px}.nav-menu[open]>summary{background:var(--soft);color:var(--accent);font-weight:700}.nav-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:180px;padding:7px;background:white;border:1px solid var(--line);border-radius:9px;box-shadow:0 10px 28px #173b2318;z-index:50}.nav-dropdown a,.nav-dropdown .link-btn{display:block!important;width:100%;padding:10px 12px;font-size:14px;white-space:nowrap;text-align:left;border-radius:5px}.nav-dropdown a:hover,.nav-dropdown .link-btn:hover{background:var(--soft);color:var(--accent)}.nav-dropdown form{margin:0}.login-company-logo{width:300px;max-width:100%;margin:0 auto}.login-card .login-system-title{width:135px;max-width:65%;margin:20px auto 16px;font-size:0}.login-description{font-size:13px}.navigation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.navigation-card{display:block;padding:20px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink);text-decoration:none}.navigation-card strong{display:block;font-size:17px;margin-bottom:6px}.navigation-card p{margin:0;font-size:13px;color:var(--muted)}
@media screen and (max-width:760px){.topbar{padding:10px 14px}.topbar .company-home{width:160px}.topbar .system-name{width:88px}.topbar .brand{gap:14px}.main-nav{width:100%;gap:3px}.main-nav>a,.nav-menu>summary{padding:8px 7px;font-size:13px}.nav-dropdown{right:auto;left:0;min-width:150px}.user-menu .nav-dropdown{left:auto;right:0}}
@media screen and (max-width:480px){.login-company-logo{width:260px}.login-card .login-system-title{width:120px}.topbar .company-home{width:145px}.topbar .system-name{width:82px}}

@media screen and (max-width:600px){.qhub-head{flex-direction:column;align-items:flex-start}.qhub-head .btn{white-space:nowrap}}
