:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#1d2925;background:#f3f6f4;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}.app-shell{min-height:100vh;max-width:1500px;margin:auto;padding:0 22px 24px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:22px 0 16px;border-bottom:1px solid #d9e2dd}.brand{font-size:18px;font-weight:850;letter-spacing:.03em;color:#163a32}.subbrand{font-size:12px;color:#6b7b73;margin-top:5px}.header-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.user-name{font-size:13px;color:#52645b}.status{font-size:12px;font-weight:700;padding:7px 10px;border-radius:99px}.online{background:#d8f4e4;color:#12683e}.offline{background:#fff0d6;color:#8b5b0b}.sync-strip{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;margin:14px 0;background:#e7eeea;border-radius:10px;font-size:13px}.sync-strip button,.quiet{background:transparent;border:1px solid #bdcbc3;border-radius:8px;padding:8px 12px;color:#23463a}.tabs{display:flex;gap:6px;overflow-x:auto;padding:5px 0 18px}.tabs button{white-space:nowrap;border:0;background:transparent;color:#65736c;padding:10px 13px;border-radius:8px;font-size:13px}.tabs button.active{background:#163a32;color:#fff}.notice{position:relative;background:#fff7d9;border:1px solid #f0df9a;padding:12px 38px 12px 14px;border-radius:8px;margin-bottom:14px;font-size:13px}.notice-close{position:absolute;right:10px;top:7px;border:0;background:none;font-size:20px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:8px 0 18px}.page-heading h1,main h1{font-size:24px;margin:0 0 5px;color:#193b31}.page-heading p,.muted{margin:0;color:#728078;font-size:13px}.pill{font-size:12px;padding:7px 10px;border:1px solid #d1ddd6;border-radius:99px;color:#446256;background:#fff}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}.stat-card,.panel{background:#fff;border:1px solid #e0e8e3;border-radius:14px;box-shadow:0 2px 8px #143c2910}.stat-card{padding:18px;display:flex;flex-direction:column;gap:10px}.stat-card span{font-size:12px;color:#6b7b73}.stat-card strong{font-size:30px;color:#163a32}.stat-card small{font-size:11px;color:#8a9790}.panel{padding:22px;margin:16px 0}.panel h2{font-size:17px;margin:0 0 14px}.panel ul{color:#53645b;font-size:14px;line-height:1.9}.form-panel{max-width:1000px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid label,.login-card label{display:flex;flex-direction:column;gap:7px;color:#4e6057;font-size:13px;font-weight:650}.form-grid input,.form-grid select,.form-grid textarea,.login-card input{width:100%;padding:11px 12px;border:1px solid #cbd8d0;border-radius:8px;background:#fff;color:#1d2925;outline:none}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.login-card input:focus{border-color:#2c7860;box-shadow:0 0 0 3px #2c786018}.wide{grid-column:1/-1}.primary{background:#17654c;color:#fff;border:0;border-radius:8px;padding:11px 17px;font-weight:700}.primary:hover{background:#12523e}.full{width:100%;margin-top:8px}.table-wrap{width:100%;overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px;min-width:650px}th,td{text-align:left;border-bottom:1px solid #edf1ee;padding:12px 10px;vertical-align:top}th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#728078;background:#f8faf8}td{color:#3c4c44}.tag{display:inline-block;padding:4px 8px;border-radius:99px;font-size:11px;background:#e4f4e9;color:#276345}.tag.pending{background:#fff0d6;color:#865b10}.tag.failed{background:#fde7e7;color:#a12d2d}.machine-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.machine-card{border:1px solid #e1e9e4;border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:7px}.machine-card strong{font-size:18px;color:#1b4a3a}.machine-card span{font-size:13px}.machine-card small{font-size:11px;color:#7a8981}.photo-preview{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px}.photo-preview img{width:100px;height:80px;object-fit:cover;border-radius:8px;border:1px solid #d6e0da}.error{color:#b42318;font-size:12px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top left,#d9eee4,#f4f6f4 55%)}.login-card{background:#fff;border:1px solid #e0e8e3;border-radius:18px;padding:32px;width:min(420px,100%);box-shadow:0 15px 45px #163a3214;display:flex;flex-direction:column;gap:16px}.login-card .logo{width:48px;height:48px;border-radius:13px;background:#163a32;color:#fff;display:grid;place-items:center;font-size:24px}.login-card h1{margin:0;font-size:23px;color:#163a32}.login-card p{margin:-10px 0 6px;color:#718078;font-size:13px}.login-card small{color:#859189;font-size:11px;line-height:1.5}footer{text-align:center;padding:26px 0 10px;font-size:11px;color:#88958e}@media(max-width:850px){.stat-grid,.machine-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{align-items:flex-start;flex-direction:column}.header-right{width:100%;justify-content:space-between}.app-shell{padding:0 12px 18px}.panel{padding:16px}}.checklist{border:1px solid #d6e0da;border-radius:10px;padding:14px 16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 18px}.checklist legend{padding:0 6px;color:#4e6057;font-size:13px;font-weight:700}.check-row{display:flex!important;align-items:center;flex-direction:row!important;gap:10px!important;padding:9px 2px;border-bottom:1px solid #edf1ee;font-weight:500!important}.check-row input{width:18px!important;height:18px;accent-color:#17654c;flex:0 0 auto}.check-row span{color:#3c4c44}.button-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0}.invoice-card{display:grid;grid-template-columns:minmax(180px,1fr) 170px minmax(180px,1fr);align-items:center;gap:18px;padding:16px;margin-top:16px;border:1px solid #cfddd4;border-radius:12px;background:#f8fbf9}.invoice-card h3{margin:0 0 8px;color:#163a32}.invoice-card p{margin:0 0 6px}.invoice-qr{width:160px;height:160px;object-fit:contain;background:#fff;padding:6px;border:1px solid #e0e8e3;border-radius:8px}.bank-links{display:flex;flex-direction:column;gap:8px}.bank-link{color:#17654c;padding:8px 10px;border:1px solid #cfddd4;border-radius:8px;text-decoration:none;font-size:13px}.bank-link:hover{background:#e7f3ec}.staff-form{margin:16px 0}.staff-list{margin-top:12px}.staff-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid #edf1ee}.staff-row>span:first-child{display:flex;flex-direction:column;gap:4px}.staff-row small{color:#718078;font-size:12px}.ad-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ad-card{border:1px solid #e1e9e4;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:8px}.ad-card h3{margin:4px 0;color:#193b31}.ad-card p{margin:0;color:#53645b;white-space:pre-wrap}.ad-card small{color:#718078}.plan-edit{border:1px solid #e0e8e3;border-radius:12px;padding:16px;margin:14px 0}.plan-edit .form-grid{margin:12px 0}.plan-edit-head{display:flex;justify-content:space-between;align-items:center}.inline-check{display:flex;align-items:center;gap:6px;font-size:12px;color:#53645b}.danger-zone{border-top:1px solid #f1d2d2;margin-top:24px;padding-top:18px}.danger-zone h3{color:#962b2b;margin:0 0 6px;font-size:15px}.danger{background:#a52c2c;color:#fff;border:0;border-radius:8px;padding:10px 14px;font-weight:700;margin-top:10px}.inspection-panel{max-width:900px;padding:clamp(16px,3vw,30px)}.inspection-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px;background:#f4f8f5;border:1px solid #e1eae4;border-radius:14px}.inspection-field{display:flex;flex-direction:column;gap:8px;min-width:0;color:#304b3e;font-size:13px;font-weight:650}.inspection-field input,.inspection-field select{width:100%;min-height:46px;padding:11px 12px;border:1px solid #cbd8d0;border-radius:10px;background:#fff;color:#1d2925}.inspection-field input:focus,.inspection-field select:focus{border-color:#2c7860;outline:3px solid #2c786018}.inspection-operator{display:flex;flex-direction:column;justify-content:center;gap:5px;padding:0 4px;color:#244b3a}.inspection-operator small{font-size:11px;color:#728078}.inspection-operator strong{font-size:15px}.inspection-section{padding:22px 0;border-bottom:1px solid #e8eee9}.inspection-section-title{display:flex;align-items:center;gap:11px;margin:0 0 14px}.inspection-section-title>span{display:grid;place-items:center;width:30px;height:30px;flex:none;border-radius:9px;background:#e5f2e9;color:#17654c;font-size:11px;font-weight:800}.inspection-section-title h2{margin:0;color:#193b31;font-size:16px}.inspection-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.inspection-field{padding:13px;border:1px solid #e1e9e4;border-radius:12px;background:#fff}.inspection-field>span,.inspection-field legend{line-height:1.45;color:#304b3e}.required-mark{color:#c34d35}.inspection-multi,.inspection-rating{grid-column:1/-1;margin:0}.inspection-multi legend,.inspection-rating legend{padding:0 5px}.inspection-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:7px}.inspection-option{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:9px!important;padding:10px;border:1px solid #e5ece7;border-radius:9px;background:#f9fbf9;font-size:12px!important;font-weight:500!important;line-height:1.4}.inspection-option input{width:18px!important;height:18px;min-height:18px;margin:0;accent-color:#17654c;flex:none}.rating-options{display:flex;gap:9px;margin-top:8px}.rating-options label{display:grid;place-items:center;width:46px;height:44px;border:1px solid #d6e0da;border-radius:10px;background:#f9fbf9;cursor:pointer}.rating-options label.selected{border-color:#17654c;background:#e5f2e9;color:#17654c}.rating-options input{position:absolute;opacity:0;pointer-events:none}.rating-options span{font-size:14px;font-weight:750}.inspection-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:20px}.inspection-actions p{max-width:430px;margin:0;color:#728078;font-size:12px;line-height:1.5}@media(max-width:600px){.inspection-panel{padding:14px}.inspection-meta,.inspection-fields{grid-template-columns:1fr}.inspection-operator{padding:10px 4px}.inspection-section{padding:18px 0}.inspection-section-title h2{font-size:15px}.inspection-options{grid-template-columns:1fr}.inspection-actions{align-items:stretch;flex-direction:column}.inspection-actions .primary{width:100%;min-height:48px}.inspection-panel .page-heading{align-items:flex-start}}.empty-issues{padding:26px;border:1px dashed #b9cec0;border-radius:12px;background:#f7fbf8;text-align:center;color:#315c45}.empty-issues p{margin:8px 0 0;color:#728078;font-size:13px}.issue-machine{border:1px solid #e0e8e3;border-radius:12px;margin-top:16px;overflow:hidden}.issue-machine-head{padding:14px 16px;background:#f5f8f6}.issue-machine-head h2{margin:0 0 4px;color:#193b31}.issue-machine-head small,.issue-copy small{color:#728078;font-size:12px}.issue-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;border-top:1px solid #edf1ee}.issue-copy{min-width:0}.issue-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.issue-title strong{font-size:14px;color:#34483d}.issue-resolve{white-space:nowrap;flex:none}@media(max-width:600px){.issue-row{align-items:stretch;flex-direction:column;gap:10px}.issue-resolve{width:100%;min-height:44px}.issue-title{align-items:flex-start}}@media(max-width:850px){.invoice-card{grid-template-columns:1fr 150px}.invoice-card .bank-links{grid-column:1/-1}.ad-grid{grid-template-columns:1fr}}@media(max-width:540px){.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.checklist,.invoice-card{grid-template-columns:1fr}.invoice-qr{justify-self:center}.invoice-card .bank-links{grid-column:auto}.stat-card{padding:13px}.stat-card strong{font-size:25px}.page-heading h1,main h1{font-size:21px}.sync-strip{align-items:flex-start;flex-direction:column}.machine-grid{grid-template-columns:1fr}.panel{padding:14px}.tabs button{padding:9px 10px}.brand{font-size:16px}.staff-row{align-items:flex-start;flex-direction:column}}.photo-view-button{display:block;margin-top:6px;padding:6px 9px;font-size:12px}.photo-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:20px;background:#101814cc}.photo-modal-content{position:relative;max-width:min(100%,900px);max-height:90vh;padding:12px;border-radius:12px;background:#fff}.photo-modal-content img{display:block;max-width:100%;max-height:82vh;object-fit:contain}.photo-close{display:block;margin:0 0 8px auto}.photo-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.photo-preview-item{display:grid;justify-items:start;gap:6px;font-size:12px}.photo-gallery{width:min(100%,1000px);overflow:auto}.photo-gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;max-height:78vh;overflow:auto}.photo-gallery-grid figure{margin:0;padding:8px;border:1px solid #e0e8e3;border-radius:10px}.photo-gallery-grid img{width:100%;max-height:60vh;object-fit:contain}.photo-gallery-grid figcaption{padding-top:6px;color:#53645b;font-size:12px}.photo-preview-item img{width:100%;height:110px;object-fit:cover;border-radius:8px;border:1px solid #d6e0da}.photo-gallery-grid img.zoomable{cursor:zoom-in}.photo-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:grid;place-items:center;padding:16px;background:#000000e6}.photo-lightbox img{max-width:96vw;max-height:86vh;object-fit:contain;border-radius:6px}.lightbox-close,.lightbox-nav{position:absolute;display:grid;place-items:center;width:46px;height:46px;padding:0;border:0;border-radius:50%;background:#ffffff2e;color:#fff;font-size:28px;line-height:1;cursor:pointer}.lightbox-close{top:14px;right:14px;font-size:20px}.lightbox-nav{top:50%;transform:translateY(-50%)}.lightbox-nav.prev{left:12px}.lightbox-nav.next{right:12px}.lightbox-caption{position:absolute;left:0;right:0;bottom:14px;text-align:center;color:#fff;font-size:13px}.issue-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}@media(max-width:600px){.issue-actions{width:100%}.issue-actions>button{flex:1;min-height:44px}}.row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.staff-edit{flex-direction:column;align-items:stretch}.staff-edit .form-grid{width:100%}.card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.machine-edit{display:flex;flex-direction:column;gap:8px}.machine-edit label{display:flex;flex-direction:column;gap:4px;font-size:12px}.danger-text{color:#a52c2c;border-color:#e3bcbc}.machine-card.inactive{background:#f7f8f7;color:#6b7a72}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:grid;place-items:center;padding:16px;background:#0008}.dialog{background:#fff;border-radius:12px;padding:20px;width:min(420px,100%);max-height:92vh;overflow:auto;display:flex;flex-direction:column;gap:12px;box-shadow:0 12px 40px #0004}.dialog h2{margin:0}.dialog label{display:flex;flex-direction:column;gap:4px;font-size:13px}.reset-result{border:1px solid #cfe3d6;background:#f3faf5;border-radius:10px;padding:12px;margin:12px 0;display:flex;flex-direction:column;gap:8px}.reset-result code{font-size:18px;letter-spacing:.5px;padding:8px 10px;background:#fff;border:1px dashed #9db9a8;border-radius:8px;word-break:break-all;-webkit-user-select:all;user-select:all}.filter-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:0 0 14px}.filter-bar label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:650;color:#4e6057}.filter-bar input,.filter-bar select{padding:9px 10px;border:1px solid #cbd8d0;border-radius:8px;background:#fff;color:#1d2925}.dialog input,.dialog select,.dialog textarea{width:100%;padding:9px 10px;border:1px solid #cbd8d0;border-radius:8px;background:#fff;color:#1d2925}.dialog input[type=checkbox]{width:auto}.dialog.wide-dialog{width:min(560px,100%)}.dialog .inline-check{flex-direction:row;align-items:center;gap:8px;font-size:13px}th.num,td.num{text-align:right;white-space:nowrap}tr.total-row td{font-weight:800;background:#f4f8f5}fieldset.checklist{margin:0 0 14px}
