.form-control{position:relative;display:flex;flex-direction:column;gap:.5rem;width:100%}.date-field{width:100%}.date-field md-outlined-text-field{width:100%}.date-native-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none}.time-range-group{display:flex;align-items:center;gap:.75rem;width:100%}.time-field{flex:1;min-width:0}.time-separator{font-size:1.25rem;color:#6b7280;font-weight:500}.time-native-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none}.filters md-outlined-select,.filters md-outlined-text-field{width:100%}.unit-filter{position:relative}.unit-suggestion-panel{position:absolute;top:calc(100% + .4rem);left:0;width:100%;max-height:260px;overflow-y:auto;border:1px solid #d1d5db;border-radius:12px;background:#fff;box-shadow:0 20px 45px #0f172a1f;padding:.25rem 0;z-index:20;display:flex;flex-direction:column;gap:.25rem}.unit-suggestion-panel.hidden{display:none}.unit-suggestion-item{display:flex;align-items:center;gap:.75rem;padding:.45rem .9rem;font-size:.95rem;color:#1f2937;cursor:pointer}.unit-suggestion-item:hover{background-color:#f1f5f9}.unit-suggestion-item input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--md-sys-color-primary)}.unit-selected-chips{display:flex;flex-wrap:wrap;gap:.35rem;padding:.5rem .75rem 0}.unit-chip--small{background-color:#e0f2f1;color:#006a6a;padding:.2rem .6rem;border-radius:9999px;font-size:.75rem;display:inline-flex;align-items:center;gap:.35rem}.unit-chip-remove{background:transparent;border:none;font-size:1rem;line-height:1;cursor:pointer;color:inherit;padding:0}.unit-chip-remove:hover{color:#0f172a}.unit-suggestion-divider{height:1px;margin:.25rem .75rem;background-color:#e5e7eb}.unit-suggestion-empty{padding:.75rem 1rem;font-size:.9rem;color:#6b7280}:root{font-family:Noto Sans TC,Roboto,system-ui,sans-serif;--md-sys-color-primary: #006A6A;--md-sys-color-on-primary: #FFFFFF;--md-ref-typeface-brand: "Noto Sans TC", "Roboto";--md-ref-typeface-plain: "Noto Sans TC", "Roboto"}body{margin:0;background-color:#f8f9fa;display:flex;justify-content:center;align-items:flex-start;min-height:100vh;min-width:320px;padding:2rem 1rem;box-sizing:border-box}.container{width:100%;max-width:480px}.admin-container{max-width:1200px}.card{background-color:#fff;border-radius:1.5rem;padding:2rem;box-shadow:0 4px_6px -1px #0000001a,0 2px 4px -2px #0000001a;display:flex;flex-direction:column;gap:1.5rem}.headline{font-size:1.75rem;font-weight:700;text-align:center;color:#333;margin:0}form{display:flex;flex-direction:column;gap:1.5rem}.w-full{width:100%}.selector-grid{display:grid;gap:2rem;margin-top:1.5rem}@media(min-width:960px){.selector-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.hidden{display:none!important}.signer-container{max-width:680px}.signer-card{gap:1.5rem}.state-section{display:flex;flex-direction:column;gap:1rem;align-items:center;text-align:center}.state-section md-linear-progress{width:100%}.state-icon{font-size:2.5rem;color:#b91c1c}.state-text{margin:0;color:#4b5563;font-size:.98rem}.event-summary{display:flex;flex-direction:column;gap:1rem}.summary-main{display:flex;flex-direction:column;gap:.25rem}.event-meta{display:inline-flex;align-items:center;gap:.35rem;font-size:.95rem;color:#4b5563;margin:0}.event-meta .material-symbols-outlined{font-size:1.15rem}.summary-actions{display:flex;justify-content:flex-end}.summary-actions md-text-button::part(button){padding-inline:.5rem}.signer-filters{display:flex;flex-direction:column;gap:1rem;margin-block:1.25rem}.attendee-list{border:1px solid #e5e7eb;border-radius:16px;max-height:460px;overflow-y:auto}.attendee-item{--md-list-item-one-line-container-height: 68px}.attendee-status-icon{font-size:1.5rem;color:#64748b}.attendee-status-icon.signed{color:#0f766e}.empty-state{padding:3rem 1rem;display:flex;flex-direction:column;gap:.75rem;align-items:center;border:1px dashed #d1d5db;border-radius:16px;color:#6b7280;text-align:center}.empty-state .material-symbols-outlined{font-size:2.5rem}.back-button{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem 0;background:none;border:none;color:#0f766e;font-weight:600;cursor:pointer}.back-button .material-symbols-outlined{font-size:1.25rem}.sign-detail{display:flex;flex-direction:column;gap:1.5rem}.sign-info{display:flex;flex-direction:column;gap:.5rem}.sign-name{margin:0;font-size:1.6rem}.sign-unit{margin:0;font-size:1rem;color:#4b5563}.sign-status{font-size:.95rem;padding:.75rem 1rem;border-radius:12px;background-color:#e0f2f1;color:#0f766e}.sign-status.pending{background-color:#fef9c3;color:#92400e}.sign-status.processing{background-color:#dbebff;color:#1d4ed8}.sign-status.error{background-color:#fee2e2;color:#b91c1c}.sign-status.signed{background-color:#dcfce7;color:#15803d}.signature-area{border:1px dashed #d1d5db;border-radius:16px;padding:1.5rem;display:flex;justify-content:center;align-items:center;min-height:220px;background:#f9fafb}.signature-placeholder{display:flex;flex-direction:column;align-items:center;gap:.75rem;color:#6b7280;text-align:center}.signature-placeholder .material-symbols-outlined{font-size:2.25rem}.sign-actions{display:flex;flex-direction:column;gap:.75rem}@media(min-width:768px){.event-summary{flex-direction:row;justify-content:space-between;align-items:flex-start}.signer-filters{flex-direction:row;align-items:center}.signer-filters md-outlined-text-field{max-width:360px}}.panel-title{font-size:1.125rem;font-weight:500;margin:0 0 1rem;border-bottom:1px solid #e0e0e0;padding-bottom:.5rem}.selection-panel .filters{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.selection-panel .actions{text-align:right;margin-bottom:.5rem}.filtered-list{border:1px solid #ccc;border-radius:8px;height:400px;overflow-y:auto}.filtered-list md-list-item{--md-list-item-one-line-container-height: 48px}.selected-panel .preset-controls{display:flex;flex-direction:column;gap:1rem}.preset-list{display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto;padding:.5rem;border:1px solid #e0e0e0;border-radius:8px;background:#fafafa}.preset-item{display:flex;align-items:center;gap:.5rem}.preset-button{flex:1;min-width:0;padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:8px;background:#fff;text-align:left;font-size:.875rem;cursor:pointer;transition:all .2s;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preset-button:hover{background:#f3f4f6;border-color:var(--md-sys-color-primary)}.preset-delete-btn{width:32px;height:32px;border:none;border-radius:50%;background:#fee2e2;color:#dc2626;font-size:1.5rem;line-height:1;cursor:pointer;transition:all .2s;flex-shrink:0;display:flex;align-items:center;justify-content:center}.preset-delete-btn:hover{background:#fecaca;transform:scale(1.1)}.chips-container{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem;border:1px solid #ccc;border-radius:8px;min-height:290px;max-height:290px;overflow-y:auto;align-content:flex-start}.chips-container .placeholder-text{color:#6c757d;font-size:.875rem;margin:auto}.chip{display:inline-flex;align-items:center;background-color:#e0e7ff;color:#3730a3;padding:.25rem .75rem;border-radius:1rem;font-size:.875rem;font-weight:500;white-space:nowrap}.chip .close-btn{margin-left:.5rem;cursor:pointer;font-size:1.25rem;line-height:1;font-weight:700}md-filled-button{--md-filled-button-container-height: 52px}.result-area{margin-top:1.5rem;border-top:1px solid #e0e0e0;padding-top:1.5rem}.result-title{font-size:1.25rem;font-weight:500;color:var(--md-sys-color-primary)}.link-box{display:flex;margin-top:.5rem}.link-box input{flex-grow:1;border:1px solid #ccc;padding:.5rem;border-radius:4px 0 0 4px;background:#f1f1f1;font-family:monospace}.link-box button{border:1px solid #ccc;border-left:none;padding:.5rem 1rem;cursor:pointer;background:#e0e0e0;border-radius:0 4px 4px 0;font-weight:500}.link-box button:hover{background:#d1d1d1}.signature-area{display:flex;flex-direction:column;gap:.75rem}.signature-header{display:flex;justify-content:space-between;align-items:center}.signature-header h3{margin:0;font-size:1rem;font-weight:500;color:#374151}.signature-canvas-wrapper{position:relative;width:100%;height:200px;border:2px solid #d1d5db;border-radius:12px;background:#fff;overflow:hidden}#signature-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.signature-guide{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#9ca3af;font-size:.875rem;pointer-events:none;opacity:.5;text-align:center}.doc-generated-notice{display:flex;gap:1rem;padding:1.5rem;background:linear-gradient(135deg,#e0f2f1,#b2dfdb);border-radius:12px;margin-bottom:1.5rem;border:2px solid #4db6ac}.notice-icon{flex-shrink:0}.notice-icon .material-symbols-outlined{font-size:3rem;color:#00897b}.notice-content{flex:1}.notice-content h3{margin:0 0 .5rem;font-size:1.25rem;color:#00695c;font-weight:600}.notice-content p{margin:0 0 1rem;color:#004d40}.doc-link-button{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#fff;color:var(--md-sys-color-primary);text-decoration:none;border-radius:8px;font-weight:500;transition:all .2s;box-shadow:0 2px 4px #0000001a}.doc-link-button:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-1px)}.doc-link-button .material-symbols-outlined{font-size:1.25rem}.result-tabs{display:flex;gap:.5rem;margin-bottom:1rem;border-bottom:2px solid #e5e7eb}.result-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .2s;color:#6b7280;font-weight:500}.result-tab:hover{color:var(--md-sys-color-primary);background:#006a6a0d}.result-tab.active{color:var(--md-sys-color-primary);border-bottom-color:var(--md-sys-color-primary)}.result-section{display:flex;flex-direction:column;gap:1rem}.qr-container{display:flex;justify-content:center;padding:2rem;background:#fafafa;border-radius:12px;border:1px solid #e5e7eb}#qr-canvas{display:block;max-width:100%;height:auto}.events-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.events-header-left{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.events-filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.events-filters .filter-item{flex:1;min-width:200px}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;gap:1rem;color:#6c757d}.empty-state .material-symbols-outlined{font-size:4rem;opacity:.3}.events-list{display:flex;flex-direction:column;gap:1.5rem!important;margin-bottom:1rem}.events-list>.event-card{margin:0!important}.events-list>.event-card:not(:last-child){margin-bottom:1.5rem!important}.no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;gap:1rem;color:#6c757d}.no-results .material-symbols-outlined{font-size:4rem;opacity:.3}.no-results p{margin:0;font-size:1rem}.event-card{border:1px solid #e0e0e0;border-radius:12px;padding:1.5rem;background:#fafafa;transition:box-shadow .2s;margin-bottom:0!important}.event-card:hover{box-shadow:0 4px 12px #0000001a}@media(max-width:640px){.event-card{padding:1rem}}.event-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}@media(max-width:640px){.event-card-header{flex-direction:column;gap:.75rem}}.event-info{flex:1;min-width:0;width:100%}.event-title-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem;flex-wrap:wrap}.event-title{font-size:1.25rem;font-weight:600;margin:0;color:#1f2937;word-break:break-word}@media(max-width:640px){.event-title{font-size:1.125rem}}.event-badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.event-badge.active{background:#dbeafe;color:#1e40af}.event-badge.generated{background:#d1fae5;color:#065f46}@media(max-width:640px){.event-badge{font-size:.625rem;padding:.2rem .5rem}}.event-meta{display:flex;align-items:center;gap:.5rem;color:#6b7280;font-size:.875rem}.event-meta .material-symbols-outlined{font-size:1.125rem}.event-actions{display:flex;gap:.25rem;flex-shrink:0}@media(max-width:640px){.event-actions{width:100%;justify-content:flex-start}}.event-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:1rem;padding:1rem;background:#fff;border-radius:8px}@media(max-width:640px){.event-stats{grid-template-columns:repeat(2,1fr);gap:.75rem;padding:.75rem}}.stat-item{display:flex;flex-direction:column;gap:.25rem}.stat-label{font-size:.75rem;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.stat-value{font-size:1.25rem;font-weight:600;color:var(--md-sys-color-primary);word-break:break-word}@media(max-width:640px){.stat-label{font-size:.625rem}.stat-value{font-size:1rem}}.doc-link{display:inline-flex;align-items:center;gap:.25rem;color:var(--md-sys-color-primary);text-decoration:none;font-size:.875rem;font-weight:500;padding:.25rem .5rem;border-radius:6px;transition:background .2s}.doc-link:hover{background:#006a6a1a}.doc-link .material-symbols-outlined{font-size:1.125rem}.event-link{display:flex;gap:.5rem;align-items:center;padding:.75rem;background:#fff;border-radius:8px;overflow:hidden}.link-label{font-size:.875rem;font-weight:500;color:#6b7280;white-space:nowrap;flex-shrink:0}.link-input{flex:1;border:none;background:transparent;font-family:monospace;font-size:.875rem;color:#4b5563;outline:none;min-width:0;overflow:hidden;text-overflow:ellipsis}@media(max-width:640px){.event-link{padding:.5rem}.link-input,.link-label{font-size:.75rem}}.event-dialog{border:none;border-radius:16px;padding:0;max-width:500px;width:90%;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.event-dialog::backdrop{background:#00000080}.dialog-content{padding:1.5rem}.dialog-content h2{margin:0 0 1.5rem;font-size:1.5rem;color:#1f2937}.dialog-content form{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.dialog-actions{display:flex;justify-content:flex-end;gap:.5rem}.qr-dialog{max-width:600px}.dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.dialog-header h2{margin:0}.qr-display{display:flex;justify-content:center;padding:2rem;background:#fafafa;border-radius:12px;margin-bottom:1.5rem}#qr-preview-canvas{display:block;max-width:100%;height:auto;border-radius:8px}#force-update-btn [slot=icon]{font-size:1.25rem}
