*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;background:#f0f2f5;color:#333;font-family:Roboto,sans-serif}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{background:linear-gradient(135deg,#1a237e,#283593);box-shadow:0 2px 8px #0003;color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-content{align-items:center;display:flex;gap:14px;margin:0 auto;max-width:1200px;padding:10px 20px}.header-photo{border:2px solid #ffffff4d;border-radius:4px;flex-shrink:0;height:48px;object-fit:cover;width:42px}.header-text{flex:1 1;min-width:0}.header-title{font-size:clamp(13px,2vw,17px);font-weight:700;letter-spacing:.3px;line-height:1.3}.header-subtitle{font-size:clamp(10px,1.5vw,13px);line-height:1.3;margin-top:2px;opacity:.85}.header-user{align-items:center;display:flex;flex-shrink:0;gap:10px;margin-left:auto}.user-badge{background:#ffffff26;border:1px solid #ffffff4d;border-radius:20px;padding:5px 12px}.btn-logout,.user-badge{font-size:12px;white-space:nowrap}.btn-logout{background:#c62828;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:7px 16px;transition:background .2s}.btn-logout:hover{background:#b71c1c}.app-main{flex:1 1;margin:24px auto;max-width:900px;padding:0 16px;width:100%}.app-footer{background:#1a237e;color:#ffffffb3;font-size:clamp(10px,1.2vw,12px);line-height:1.4;padding:12px 16px;text-align:center}.login-card{background:#fff;border-radius:10px;box-shadow:0 2px 16px #0000001a;margin:40px auto;max-width:460px;padding:32px}.login-header{align-items:center;border-bottom:2px solid #e8eaf6;display:flex;gap:14px;margin-bottom:24px;padding-bottom:16px}.login-photo{border:2px solid #e8eaf6;border-radius:6px;flex-shrink:0;height:64px;object-fit:cover;width:56px}.login-card h2{color:#1a237e;font-size:clamp(18px,2.5vw,22px);line-height:1.2}.login-card .login-subtitle{color:#666;font-size:12px;line-height:1.4;margin-top:2px}.form-group{margin-bottom:18px}.form-group label{color:#444;display:block;font-size:13px;font-weight:500;line-height:1.3;margin-bottom:5px}.form-group input,.form-group select,.form-group textarea{background:#fafafa;border:1.5px solid #d0d0d0;border-radius:5px;font-family:inherit;font-size:14px;padding:11px 13px;transition:border-color .2s,box-shadow .2s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{background:#fff;border-color:#1a237e;box-shadow:0 0 0 3px #1a237e1a;outline:none}.form-group input::placeholder{color:#aaa}.field-error,.required-star{color:#c62828}.field-error{background:#ffebee;border-radius:3px;display:inline-block;font-size:11px;margin-top:4px;padding:3px 8px}.prefix-input-group{align-items:center;background:#fafafa;border:1.5px solid #d0d0d0;border-radius:5px;display:flex;overflow:hidden;transition:border-color .2s,box-shadow .2s}.prefix-input-group:focus-within{background:#fff;border-color:#1a237e;box-shadow:0 0 0 3px #1a237e1a}.prefix-label{background:#e8eaf6;border-right:1.5px solid #d0d0d0;color:#1a237e;font-size:13px;font-weight:600;padding:11px 10px;-webkit-user-select:none;user-select:none;white-space:nowrap}.prefix-input-group input{background:#0000!important;border:none!important;border-radius:0!important;box-shadow:none!important;flex:1 1}.btn-primary{background:#1a237e;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;padding:13px 26px;transition:background .2s,transform .1s;width:100%}.btn-primary:hover{background:#283593}.btn-primary:active{transform:scale(.99)}.btn-primary:disabled{background:#9e9e9e;cursor:not-allowed;transform:none}.btn-secondary{background:#fff;border:2px solid #1a237e;border-radius:6px;color:#1a237e;cursor:pointer;font-size:14px;font-weight:600;padding:11px 22px;transition:all .2s;white-space:nowrap}.btn-secondary:hover{background:#e8eaf6}.error-msg{background:#ffebee;border-left:4px solid #c62828;border-radius:5px;color:#c62828;font-size:13px;line-height:1.4;margin-bottom:16px;padding:11px 15px}.dashboard-card{background:#fff;border-radius:12px;box-shadow:0 2px 16px #0000001a;padding:48px 32px;text-align:center}.dashboard-card h2{color:#1a237e;font-size:clamp(20px,3vw,26px);margin-bottom:10px}.dashboard-card p{color:#666;font-size:15px;margin-bottom:32px}.btn-dashboard{background:linear-gradient(135deg,#1a237e,#283593);border:none;border-radius:10px;box-shadow:0 4px 15px #1a237e4d;color:#fff;cursor:pointer;font-size:clamp(16px,2.5vw,20px);font-weight:600;padding:18px 44px;transition:transform .2s,box-shadow .2s}.btn-dashboard:hover{box-shadow:0 6px 24px #1a237e66;transform:translateY(-2px)}.form-card{background:#fff;border-radius:12px;box-shadow:0 2px 16px #0000001a;padding:32px}.form-header{align-items:center;border-bottom:2px solid #e8eaf6;display:flex;gap:14px;margin-bottom:24px;padding-bottom:16px}.form-photo{border:2px solid #e8eaf6;border-radius:6px;flex-shrink:0;height:64px;object-fit:cover;width:56px}.form-card h2{color:#1a237e;font-size:clamp(18px,2.5vw,22px);margin-bottom:4px}.form-card .form-desc{color:#666;font-size:12px;line-height:1.5}.form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.form-actions{display:flex;gap:14px;margin-top:28px}.form-actions .btn-primary{flex:1 1}.form-actions .btn-secondary{flex:0 0 auto}.success-card{background:#fff;border-radius:12px;box-shadow:0 2px 16px #0000001a;margin-bottom:24px;padding:36px 28px;text-align:center}.success-icon{color:#2e7d32;font-size:56px;margin-bottom:12px}.success-card h2{color:#2e7d32;font-size:clamp(16px,2.5vw,20px);margin-bottom:10px}.success-card p{color:#555;font-size:14px;line-height:1.5;margin-bottom:28px}.receipt-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.btn-receipt-action{font-size:14px;padding:12px 28px;width:auto}.receipt-container{background:#fff;border-radius:10px;box-shadow:0 2px 16px #0000001a;margin-bottom:24px;padding:12px}.receipt-a4{background:#fff;color:#000;font-size:9px;margin:0 auto;min-height:297mm;padding:3mm;width:210mm}.receipt-section{border:1.5px solid #1a237e;margin-bottom:2px;padding:5px}.receipt-header{align-items:center;border-bottom:1.5px solid #1a237e;display:flex;gap:6px;margin-bottom:4px;padding-bottom:4px}.receipt-header-left{flex-shrink:0}.receipt-photo{border-radius:3px;display:block;height:42px;object-fit:cover;width:36px}.receipt-header-center{flex:1 1;text-align:center}.receipt-header-right{flex-shrink:0;text-align:right}.copy-badge{background:#ffcdd2;border-radius:3px;color:#b71c1c;font-size:6.5px;font-weight:700;line-height:1.3;padding:2px 6px}.receipt-header .dept-name{font-size:9px;font-weight:700;line-height:1.2}.receipt-header .dept-name-sub{color:#1a237e;font-size:8px;font-weight:600;line-height:1.2}.receipt-header .receipt-title{color:#1a237e;font-size:10px;font-weight:700;letter-spacing:.5px;margin-top:2px;text-transform:uppercase}.receipt-section-header{background:#1a237e;border-radius:2px;color:#fff;font-size:8px;font-weight:700;margin-bottom:3px;padding:3px 6px}.section-title-icon{color:#ffc107;margin-right:4px}.receipt-body{display:flex;gap:4px}.receipt-table{border-collapse:collapse;flex:1 1}.receipt-table td{border:1px solid #ccc;font-size:7.5px;padding:1.5px 4px}.receipt-table .label-cell{background:#e8eaf6;color:#1a237e;font-size:7px;font-weight:600;width:52%}.receipt-table .value-cell{font-weight:500}.surveyor-table{margin-bottom:3px}.surveyor-table td{padding:2px 4px}.receipt-qr-area{align-items:center;display:flex;flex-direction:column;gap:2px;text-align:center;width:112px}.receipt-qr-area .qr-label{color:#1a237e;font-size:7px;font-weight:700}.qr-box{background:#fff;border:1px solid #ccc;padding:3px}.qr-hint{color:#888;font-size:6px}.receipt-date-area{font-size:7px;margin-top:2px;text-align:left;width:100%}.date-row{display:flex;justify-content:space-between;padding:1px 2px}.date-row .date-lbl{color:#1a237e;font-weight:600}.digital-stamp{height:48px;width:100px}.signature-section{align-items:flex-end;border-top:1px solid #ccc;display:flex;justify-content:space-between;margin-top:4px;padding-top:3px}.sig-box{text-align:center;width:30%}.sig-line{border-bottom:1px solid #333;height:16px;margin:0 4px 2px}.sig-label{color:#555;font-size:6.5px;font-weight:500;line-height:1.3}.sig-stamp-box{width:34%}.receipt-footer{border-top:1px solid #ccc;color:#666;font-size:7px;margin-top:3px;padding-top:2px;text-align:center}.receipt-footer .thank-you{color:#1a237e;font-size:8px;font-weight:700;margin-bottom:1px}.footer-note{font-size:6px}.copy-divider{border-top:1.5px dashed #999;color:#999;font-size:7px;margin:2px 0;padding:2px;text-align:center}@media (max-width:900px){.app-main{margin:20px auto;padding:0 14px}.dashboard-card,.form-card,.login-card{padding:28px}.header-content{gap:10px;padding:8px 16px}.header-photo{height:42px;width:36px}}@media (max-width:768px){.header-content{flex-wrap:wrap;gap:8px;padding:8px 12px}.header-photo{height:38px;width:32px}.header-text{width:calc(100% - 40px)}.header-user{border-top:1px solid #ffffff26;justify-content:flex-end;margin-left:0;padding-top:4px;width:100%}.user-badge{font-size:11px;padding:4px 10px}.btn-logout{font-size:11px;padding:5px 12px}.app-main{margin:16px auto;padding:0 12px}.dashboard-card,.form-card,.login-card{border-radius:8px;padding:24px 18px}.form-header,.login-header{gap:10px}.form-photo,.login-photo{height:52px;width:44px}.form-row{gap:0;grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions .btn-secondary{flex:1 1}.receipt-a4{min-height:auto;width:100%}.receipt-body{flex-direction:column}.receipt-qr-area{flex-direction:row;flex-wrap:wrap;gap:8px;justify-content:center;width:100%}.receipt-qr-area .qr-box{order:-1}.receipt-date-area{width:auto}.signature-section{align-items:center;flex-direction:column;gap:10px}.sig-box,.sig-stamp-box{width:80%}.receipt-actions{align-items:stretch;flex-direction:column}.btn-receipt-action{width:100%}.dashboard-card{padding:32px 20px}.btn-dashboard{padding:16px 32px;width:100%}}@media (max-width:480px){.header-content{gap:6px;padding:6px 10px}.header-photo{height:34px;width:28px}.header-subtitle{font-size:10px}.form-card,.login-card{padding:18px 14px}.form-photo,.login-photo{height:46px;width:38px}.form-group{margin-bottom:14px}.form-group label{font-size:12px}.form-group input,.form-group select{font-size:13px;padding:10px 12px}.prefix-label{font-size:11px;padding:10px 8px}.success-card{padding:24px 16px}}@media print{.app-footer,.app-header,.btn-logout,.receipt-actions,.success-card{display:none!important}.receipt-container{border-radius:0;box-shadow:none;padding:0}body{background:#fff}.app-main{margin:0;max-width:100%;padding:0}.receipt-a4{min-height:auto;width:100%}@page{size:A4 portrait;margin:4mm}}.dashboard-stats{display:flex;justify-content:center;margin:24px 0}.stat-box{background:linear-gradient(135deg,#1a237e,#283593);border-radius:12px;color:#fff;min-width:200px;padding:24px 40px;text-align:center}.stat-number{display:block;font-size:36px;font-weight:700;line-height:1.2}.stat-label{display:block;font-size:13px;margin-top:4px;opacity:.9}.registrations-table-wrapper{margin-top:32px;text-align:left}.registrations-table-wrapper h3{color:#1a237e;font-size:18px;margin-bottom:12px}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.registrations-table{border-collapse:collapse;font-size:13px;min-width:900px;width:100%}.registrations-table th{background:#1a237e;color:#fff;font-weight:600;padding:10px 8px;text-align:left;white-space:nowrap}.registrations-table td{border-bottom:1px solid #e0e0e0;padding:8px;white-space:nowrap}.registrations-table tr:nth-child(2n){background:#f8f9ff}.registrations-table tr:hover{background:#e8eaf6}.duplicate-warning{background:#fff3e0;border:2px solid #ff9800;border-radius:8px;margin-bottom:16px;padding:16px}.duplicate-warning strong{color:#e65100;font-size:16px}.duplicate-warning p{font-size:14px;margin:8px 0}.duplicate-warning ul{grid-gap:4px 16px;display:grid;font-size:13px;gap:4px 16px;grid-template-columns:1fr 1fr;list-style:none;padding:0}.duplicate-warning li{padding:2px 0}.duplicate-hint{color:#bf360c;font-style:italic;margin-top:8px}.checking-text{color:#666;font-size:13px;font-style:italic;margin-bottom:8px}.loading-text{color:#666;font-style:italic;margin:16px 0}@media (max-width:600px){.duplicate-warning ul{grid-template-columns:1fr}.stat-box{min-width:140px;padding:16px 24px}.stat-number{font-size:28px}}
/*# sourceMappingURL=main.54ff340d.css.map*/