@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+TC:wght@400;500;700&display=swap";.admin-layout{display:flex;min-height:100vh;background-color:#f5f6fa}.admin-sidebar{width:250px;background-color:#2c3e50;color:#fff;display:flex;flex-direction:column}.admin-brand{padding:20px;background-color:#1a252f;text-align:center}.admin-nav{display:flex;flex-direction:column;padding:10px 0;flex:1}.admin-nav a{color:#bdc3c7;text-decoration:none;padding:15px 20px;transition:all .3s}.admin-nav a:hover,.admin-nav a.active{background-color:#34495e;color:#fff;border-left:4px solid #3498db}.admin-sidebar-footer{padding:20px;border-top:1px solid #34495e;text-align:center}.admin-sidebar-footer a{color:#ecf0f1;text-decoration:none;font-size:.9em}.admin-main-content{flex:1;padding:30px;overflow-y:auto}.admin-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;padding-bottom:15px;border-bottom:1px solid #ddd}.admin-page-header h1{margin:0;font-size:1.8em;color:#333}.admin-table-container{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000000d;overflow-x:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:12px 15px;text-align:left;border-bottom:1px solid #eee}.admin-table th{background-color:#f8f9fa;font-weight:600;color:#555;white-space:nowrap}.admin-table tbody tr:hover{background-color:#fdfdfd}.status-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:.85em;font-weight:700}.status-badge.success{background-color:#d4edda;color:#155724}.status-badge.pending{background-color:#f8d7da;color:#721c24}.text-center{text-align:center}.admin-settings-container{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settings-card{background:#fff;padding:20px;border-radius:8px;box-shadow:0 4px 6px #0000000d}.settings-add-group{display:flex;gap:10px;margin-bottom:15px}.settings-add-group input{flex:1;padding:8px 12px;border:1px solid #ccc;border-radius:4px}.settings-list{list-style:none;padding:0;margin:0}.settings-list li{display:flex;justify-content:space-between;align-items:center;padding:10px;border-bottom:1px solid #eee}.btn-danger{background-color:#e74c3c;color:#fff;border:none;padding:6px 10px;border-radius:4px;cursor:pointer}.btn-danger:hover{background-color:#c0392b}.admin-export-card{background:#fff;padding:20px;border-radius:8px;box-shadow:0 4px 6px #0000000d;max-width:600px}.admin-export-log{margin-top:20px;background:#f8f9fa;padding:15px;border-radius:4px;font-family:monospace;white-space:pre-wrap;min-height:100px}.mt-3{margin-top:15px}.mt-4{margin-top:25px}.complex-form{flex-wrap:wrap}.complex-form input{flex:1 1 150px;min-width:120px}.full-width{width:100%}.btn-sm{padding:4px 8px;font-size:.8em}.admin-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:9999}.admin-modal-content{background:#fff;border-radius:8px;width:90%;max-width:800px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 10px 30px #0000004d;animation:modalFadeIn .2s ease-out}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.admin-modal-header{padding:15px 25px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center;background-color:#f8f9fa;border-radius:8px 8px 0 0}.admin-modal-header h2{margin:0;font-size:1.4em;color:#2c3e50}.btn-close{background:none;border:none;font-size:1.8em;cursor:pointer;color:#95a5a6;line-height:1}.btn-close:hover{color:#e74c3c}.admin-modal-body{padding:25px;overflow-y:auto;flex:1}.preview-data-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.preview-item{background:#fdfdfd;padding:12px 15px;border-radius:6px;border-left:4px solid #3498db;box-shadow:0 1px 3px #0000000d}.preview-item.full-width{grid-column:1 / -1}.preview-item strong{display:block;font-size:.9em;color:#7f8c8d;margin-bottom:5px}.preview-item span{font-size:1.05em;color:#333}.preview-image-container{margin-top:10px;text-align:center;background-color:#eee;padding:10px;border-radius:4px}.preview-image{max-width:100%;max-height:400px;border-radius:4px;object-fit:contain}.btn-click:hover{filter:brightness(.9);transform:scale(1.05);transition:all .2s}.readonly-form{pointer-events:none;opacity:.9}.readonly-form input,.readonly-form select,.readonly-form textarea,.readonly-form button{background-color:transparent!important;border-color:#ddd!important;color:#333!important}.readonly-form .preview-extras{pointer-events:auto}.preview-form-wrapper{background:#fff;padding:10px;border-radius:8px}:root{--primary-color: #212529;--primary-color-dark: #000;--secondary-color: #f8f9fa;--accent-color: #198754;--accent-color-hover: #157347;--success-color: #198754;--error-color: #dc3545;--text-color: #212529;--text-color-light: #6c757d;--border-color: #dee2e6;--card-bg: #ffffff;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--font-family-sans: "Inter", "Noto Sans TC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-form: "Noto Sans TC", "Inter", sans-serif}*,*:before,*:after{box-sizing:border-box}body{font-family:var(--font-family-sans);margin:0;background-color:var(--secondary-color);color:var(--text-color);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-header{background-color:var(--primary-color);color:#fff;padding:.8rem 1rem;text-align:center;box-shadow:var(--shadow-md);position:sticky;top:0;z-index:100}.app-header h1{margin:0;font-size:1.2rem;font-weight:500}.app-footer{text-align:center;padding:1rem 0;color:var(--text-color-light);font-size:.9rem}.main-container,.admin-main-container,.workflow-container{padding:1rem;max-width:1200px;margin:0 auto}.content-card{background-color:var(--card-bg);border-radius:12px;border:1px solid var(--border-color);box-shadow:var(--shadow-sm);padding:1.5rem}.form-table-wrapper{overflow-x:auto}.form-table{width:100%;border-collapse:collapse;margin-top:1rem;font-size:1rem}.form-table th,.form-table td{border:1px solid var(--border-color);padding:.8rem 1rem;text-align:left;vertical-align:middle}.form-table .text-center,.header-center{text-align:center!important}.form-table th,.form-table .group-header{background-color:#e9ecef;font-weight:600;text-align:left}.form-table .radio-group{display:flex;justify-content:center;align-items:center;gap:2rem}.form-table .radio-group label{display:flex;align-items:center;cursor:pointer}.form-table input[type=text],.form-table input[type=radio],.form-table input[type=checkbox]{margin:0 .5rem 0 0}.form-table input[type=text]{width:95%;padding:.5rem;border:1px solid var(--border-color);border-radius:4px}.photo-section{margin-top:1rem}.photo-row{display:flex;gap:1rem;margin-bottom:1rem}.photo-item,.photo-item-full{flex:1;border:1px solid var(--border-color);border-radius:8px;padding:1rem}.photo-upload-box{display:block;border:2px dashed var(--border-color);border-radius:8px;cursor:pointer;padding:1rem;text-align:center;transition:all .2s ease}.photo-upload-box:hover{background-color:var(--secondary-color);border-color:var(--accent-color)}.photo-upload-box input[type=file]{display:none}.photo-upload-placeholder{color:var(--text-color-light)}.photo-preview{max-width:100%;height:auto;border-radius:4px;margin-top:1rem}.workflow-actions{margin-top:2rem;display:flex;gap:1rem}button{border:none;border-radius:8px;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:all .2s ease;font-weight:600;font-family:var(--font-family-sans);display:inline-flex;align-items:center;justify-content:center;gap:.5rem;-webkit-tap-highlight-color:transparent}button:disabled{background-color:#a5adba;color:#fff;cursor:not-allowed}.btn-primary{background-color:var(--accent-color);color:#fff;width:100%}.btn-primary:hover:not(:disabled){background-color:var(--accent-color-hover);box-shadow:var(--shadow-md)}.btn-secondary{background-color:var(--text-color-light);color:#fff;width:100%}.btn-secondary:hover:not(:disabled){background-color:#5a6268}input[type=text],input[type=date],select{width:100%;padding:.75rem;font-size:1rem;border:1px solid var(--border-color);border-radius:6px;background-color:#fff;transition:all .2s ease;font-family:var(--font-family-sans)}input[type=text]:focus,input[type=date]:focus,select:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 3px #19875426}#tabs-container{display:flex;border-bottom:1px solid var(--border-color);margin-bottom:1.5rem}.tab{flex:1;padding:.75rem .5rem;background:none;border:none;border-bottom:3px solid transparent;font-size:1rem;font-weight:500;color:var(--text-color-light)}.tab.active{color:var(--accent-color);border-bottom-color:var(--accent-color);font-weight:600}#input-area{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}#frame-number-input{flex-grow:1;width:auto}.btn-icon{padding:.75rem;background-color:var(--secondary-color);border:1px solid var(--border-color);color:var(--text-color);flex-shrink:0;line-height:0}.btn-icon:hover{background-color:#e2e6ea}.btn-icon svg{fill:currentColor;display:block}.progress-stepper{display:flex;flex-direction:column;gap:1rem}.step-content{padding:1rem;border-radius:8px;border:1px solid var(--border-color);background-color:var(--card-bg)}.step-content h3{margin:0 0 .25rem;font-size:1.1rem;display:flex;justify-content:space-between;align-items:center}.step-content p{margin:0 0 1rem;font-size:.85rem;color:var(--text-color-light)}.step.completed .step-content{background-color:var(--secondary-color)}.step.current .step-content{border-color:var(--accent-color)}.admin-container{display:grid;gap:1.5rem}.admin-section{background-color:var(--secondary-color);padding:1.5rem;border-radius:8px;border:1px solid var(--border-color)}.admin-section h2{margin:0 0 1rem;font-size:1.2rem;border-bottom:1px solid var(--border-color);padding-bottom:.75rem}.form-row{display:flex;flex-direction:column;margin-bottom:1rem}.form-row label{font-weight:500;margin-bottom:.5rem}#export-log{background-color:#212529;color:#f8f9fa;font-family:monospace;font-size:.85rem;padding:1rem;border-radius:6px;height:200px;overflow-y:auto;white-space:pre-wrap;line-height:1.5}.admin-container a{text-align:center;color:var(--accent-color);text-decoration:none;font-weight:500;margin-top:1rem;display:block}#loader{position:fixed;top:0;left:0;width:100%;height:100%;background:#ffffffd9;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:1000}#loader.hidden{display:none}.spinner{border:5px solid #e9ecef;border-top:5px solid var(--accent-color);border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#notification{position:fixed;top:1rem;left:1rem;right:1rem;padding:1rem;border-radius:8px;color:#fff;z-index:1001;box-shadow:var(--shadow-md);transform:translateY(-200%);opacity:0;transition:transform .4s ease,opacity .4s ease}#notification.show{transform:translateY(0);opacity:1}#notification.success{background-color:var(--success-color)}#notification.error{background-color:var(--error-color)}@media(max-width:1024px){.main-container,.workflow-container{padding:1rem}.content-card{padding:1.5rem}.app-header h1{font-size:1.15rem}.form-table{font-size:.95rem}.form-table th,.form-table td{padding:.7rem .9rem}.photo-row{flex-direction:column}}@media(min-width:1025px){.main-container,.content-card{padding:2rem}.btn-primary,.btn-secondary{width:auto}}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:2000}.modal-content{background-color:#fff;padding:2rem;border-radius:12px;box-shadow:0 10px 25px #0000001a;width:90%;max-width:500px}.signature-modal h4{margin-top:0;text-align:center}.signature-canvas-container{border:1px solid var(--border-color);border-radius:8px;margin-bottom:1rem;width:100%;height:250px}.signature-canvas{width:100%;height:100%}.modal-actions{display:flex;justify-content:flex-end;gap:1rem}.modal-actions .btn-primary,.modal-actions .btn-secondary{width:auto}@media(max-width:768px){.modal-content{width:95%;padding:1.5rem}}
