:root{font-family:'Malgun Gothic',system-ui,-apple-system,sans-serif;color:#1a2940;background:#f1f5fb;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{text-decoration:none;color:#2469ac}.muted{color:#728096}.tiny{font-size:11px}.error{color:#bd3d3d;padding:9px 0}.shell{display:flex;min-height:100vh}.sidebar{width:245px;flex:none;display:flex;flex-direction:column;background:#0e2a48;color:#d5e4f1;padding:23px 16px;min-height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 23px;border-bottom:1px solid #ffffff20}.brand-logo{font-size:27px;background:#235787;padding:8px 11px;border-radius:12px}.brand strong,.brand small{display:block}.brand small{font-size:9px;letter-spacing:1px;color:#a8c5d9;margin-top:5px}.side-heading{font-size:10px;color:#779ab6;letter-spacing:1.4px;font-weight:bold;padding:26px 12px 10px}.sidebar nav{display:flex;flex-direction:column;gap:4px}.nav-button{border:0;background:transparent;color:#d9e7f5;border-radius:8px;padding:12px 11px;text-align:left;font-weight:600}.nav-button span{margin-right:11px;font-size:16px}.nav-button.active,.nav-button:hover{background:#266bb0;color:#fff}.side-links{display:flex;flex-direction:column;gap:3px}.side-links a{padding:9px 14px;color:#cbddec;border-radius:7px}.side-links a:hover{background:#ffffff16}.side-foot{margin-top:auto;padding:20px 12px 2px;border-top:1px solid #ffffff23}.side-foot b,.side-foot small{display:block}.side-foot small{color:#abc0d6;margin-top:4px}.side-foot button{margin-top:12px;color:#c4daed;background:transparent;border:1px solid #ffffff40;border-radius:6px;padding:6px 8px;margin-right:5px}.workspace{flex:1;min-width:0;padding:42px 44px;max-width:1850px;margin:auto}.heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:27px}.heading h1{font-size:26px;margin:6px 0 7px;letter-spacing:-.8px}.heading p{color:#687991;margin:0}.eyebrow{color:#5688b4;font-size:10px;font-weight:700;letter-spacing:1.7px}.btn{border:1px solid transparent;border-radius:8px;background:#e9f0f7;color:#1f527f;padding:10px 15px;font-weight:600;white-space:nowrap}.btn.primary{background:#206ab1;color:#fff}.btn.secondary{background:#eaf1f8;color:#285b86}.btn.outline{background:transparent;border-color:#d6a3a3}.btn.danger{color:#a53435}.btn.success{background:#e1f5ec;color:#277d51}.btn.tiny{font-size:11px;padding:6px 9px;border-radius:6px}.btn.fill{width:100%}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:22px}.metric{background:#fff;border:1px solid #e0e7ef;border-radius:12px;padding:21px 22px;box-shadow:0 3px 14px #294c6806}.metric small{display:block;color:#77869b;font-size:12px;margin-bottom:10px}.metric b{font-size:25px}.panel{background:white;border:1px solid #e0e7ef;border-radius:13px;padding:22px 22px;margin-bottom:18px}.panel h2{font-size:17px;margin:2px 0 19px}.toolbar{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-bottom:17px}.search-wrap{display:flex;align-items:center;max-width:370px;flex:1;border:1px solid #d5e1ec;border-radius:8px;padding:0 12px;background:#fff}.search-wrap span{font-size:25px;color:#7b98ae}.search-wrap .input{border:0}.input{border:1px solid #d6e1ed;border-radius:8px;padding:11px 12px;background:white;color:#18314c;outline:none;min-width:0;width:100%}.input:focus{border-color:#3b8cd1;box-shadow:0 0 0 2px #3b8cd124}.input:disabled{background:#f1f3f6;color:#778395}.input.compact{width:auto;padding:7px 10px}.list-options{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.list-options label{color:#607087;display:flex;align-items:center;gap:8px}.table-scroll,.measure-table-wrap{width:100%;overflow:auto}.records,.measurement{width:100%;border-collapse:collapse;min-width:960px;font-size:12px}.records th,.measurement th{background:#f4f7fb;color:#536982;text-align:left;padding:13px 12px;border-bottom:1px solid #dce6f0;white-space:nowrap}.records td,.measurement td{padding:13px 12px;border-bottom:1px solid #edf1f6;vertical-align:middle}.records tr:hover td{background:#f8fbff}.records .check{width:40px}.table-actions{min-width:195px;white-space:nowrap}.table-actions .btn{margin:2px}.subdate{display:block;color:#7a8ba0;margin-top:5px}.ok{color:#27764d;font-weight:700}.late{color:#bd3535;font-weight:700}.pager{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:18px;color:#6a7c92;font-size:12px}.page-buttons{display:flex;gap:4px;flex-wrap:wrap}.page-buttons button{min-width:30px;padding:7px;border:1px solid #dfe6ef;background:#fff;color:#526e89;border-radius:5px}.page-buttons button.current{background:#2268ac;color:#fff}.empty{text-align:center;padding:65px 8px;color:#6c8097}.empty strong{font-size:17px;color:#2a496f}.backdrop{position:fixed;inset:0;z-index:80;background:#08192ac7;display:flex;align-items:center;justify-content:center;padding:20px}.dialog{width:950px;max-width:100%;max-height:96vh;background:#fff;border-radius:13px;box-shadow:0 20px 80px #06101b60;display:flex;flex-direction:column}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:20px 25px;border-bottom:1px solid #e1e8f0}.dialog-head h2{font-size:20px;margin:0}.close{border:0;background:transparent;font-size:30px;color:#64768a}.dialog-body{overflow:auto;padding:22px 25px;min-height:70px}.dialog-foot{display:flex;gap:10px;justify-content:flex-end;padding:16px 25px;border-top:1px solid #e7edf3;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 18px}.field label{display:block;color:#4a5e76;font-size:12px;font-weight:700;margin-bottom:6px}.field.wide{grid-column:1/-1}.field textarea{resize:vertical}.inline-control{display:flex;align-items:center;gap:8px}.inline-control .input{flex:1;min-width:0}.row-contact{margin-bottom:8px}.file-links{display:flex;flex-wrap:wrap;gap:10px;padding:5px 0 10px}.file-links a{border:1px solid #d7e3ef;padding:7px 12px;border-radius:8px}.measurement th,.measurement td{padding:5px 4px;text-align:center}.measurement .input{width:105px;padding:7px 5px;font-size:12px}.measurement td:nth-child(2) .input{width:145px}.measure-table-wrap{margin-bottom:10px}.note{background:#f0f6fc;border-radius:8px;padding:15px;color:#426589;margin-bottom:14px}.print-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.history-list{display:flex;flex-direction:column;gap:14px}.history-item{border-left:3px solid #558ec4;background:#f6f9fc;padding:15px}.history-item strong,.history-item small{display:block}.history-item small{margin-top:6px;color:#748497}.history-item p{line-height:1.8}.user-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.user-card{border:1px solid #dfebf3;padding:18px;border-radius:10px;display:flex;align-items:flex-start;flex-direction:column;gap:11px}.user-card small{color:#718299}.permission-box{margin-top:16px;border:1px solid #e2e9f2;border-radius:9px;padding:12px}.permission-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.perm-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin:12px 0}.perm-grid label{font-size:12px}.permission-box details{border-top:1px solid #e0e7ee;padding:12px 0 0}.permission-box summary{cursor:pointer;color:#366d9e}.backup-panel label{display:block;margin:12px 0;max-width:390px}.backup-panel label .input{margin-top:7px}.backup-buttons{display:flex;gap:11px;align-items:center;flex-wrap:wrap}.certificate{display:flex;justify-content:center;min-height:160px}.certificate img{max-width:100%;max-height:70vh;object-fit:contain}.settings-panel{max-width:700px}.settings-panel .btn{margin:20px 0}.login-area{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:25px;background:radial-gradient(circle at 50% 20%,#d9e9f8,#f3f6fb 65%)}.login-card{background:white;border:1px solid #dbe5f0;border-radius:17px;padding:35px;width:420px;box-shadow:0 18px 45px #20384c16}.login-card h1{font-size:23px;margin:15px 0}.login-card p{color:#6d8094;margin-bottom:25px}.login-logo{font-size:32px;background:#245d94;width:max-content;color:white;border-radius:12px;padding:9px 14px}.login-card label{display:block;font-weight:700;font-size:12px;margin:12px 0}.login-card .input{display:block;margin-top:7px}.login-card button{margin:14px 0}.mobilebar{display:none}#toast{position:fixed;right:25px;bottom:23px;background:#173956;color:white;padding:14px 20px;border-radius:10px;z-index:100;opacity:0;transform:translateY(8px);transition:.25s;pointer-events:none}#toast.show{opacity:1;transform:none}@media(max-width:940px){.workspace{padding:26px 18px}.sidebar{width:210px}.cards{grid-template-columns:repeat(3,1fr)}.perm-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.shell{display:block}.sidebar{display:none;position:fixed;inset:56px auto 0 0;z-index:50;overflow:auto;box-shadow:5px 0 40px #1234}.sidebar.open{display:flex}.mobilebar{display:flex;align-items:center;justify-content:space-between;height:56px;background:#0e2a48;color:white;padding:0 18px}.mobilebar button{border:1px solid #577891;color:white;border-radius:7px;background:transparent;padding:7px 12px}.workspace{padding:24px 12px}.heading{align-items:flex-start}.heading h1{font-size:22px}.heading p{font-size:12px}.cards{grid-template-columns:1fr 1fr;gap:8px}.metric{padding:14px}.metric b{font-size:20px}.cards .metric:last-child{display:none}.panel{padding:15px 11px}.toolbar{justify-content:stretch}.search-wrap{max-width:unset}.dialog{max-height:98vh}.dialog-head,.dialog-foot{padding:13px 16px}.dialog-body{padding:16px}.form-grid{grid-template-columns:1fr}.perm-grid{grid-template-columns:repeat(2,1fr)}.pager{flex-wrap:wrap}.backup-buttons{display:flex;flex-direction:column;align-items:stretch}}

/* v6: Customers Excel import confirmation table */
.excel-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px;background:#eef4fb;border-radius:9px;margin:12px 0;font-size:13px}
.excel-summary span{background:#fff;border:1px solid #dce7f4;border-radius:6px;padding:5px 8px}
.excel-table{max-height:290px;overflow:auto;border:1px solid #dce5f0;border-radius:6px}
.head-actions{flex-wrap:wrap}

/* v8 camera and A4 measurement viewer */
.upload-buttons{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.photo-memo{display:block;margin:13px 0}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:12px}
.photo-item{border:1px solid #dce6ee;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}
.photo-item img{width:100%;aspect-ratio:210/297;object-fit:contain;background:#f5f5f5}
.photo-item small{display:block;color:#718299;margin-top:4px}
.linked-measure{border:1px solid #dfe8f0;padding:16px;border-radius:12px;margin-bottom:17px}
.linked-measure h3{margin:0 0 12px;font-size:16px}
.linked-images{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.linked-images a{display:block;border:1px solid #dbe5ec;border-radius:9px;background:#f6f8fc;text-align:center;padding:9px}
.linked-images img{display:block;max-width:100%;max-height:370px;aspect-ratio:210/297;object-fit:contain;margin:auto}
@media(max-width:680px){.upload-buttons .btn{flex:1}.photo-grid,.linked-images{grid-template-columns:repeat(2,minmax(0,1fr))}}
