.app{animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}input:disabled{background-color:var(--color-input-disabled-bg);cursor:not-allowed;color:var(--color-input-disabled-text);transition:background-color .3s ease,color .3s ease}.empty-state{padding:20px;text-align:center;color:var(--color-text-secondary)}.mode-selector{display:flex;gap:1rem;margin-top:.5rem}.mode-option{flex:1;border:2px solid var(--color-border);border-radius:8px;padding:1rem;cursor:pointer;transition:all .2s;display:block;background-color:var(--color-bg-primary)}.mode-option:hover,.mode-option.selected{border-color:var(--color-accent-primary);background-color:var(--color-bg-secondary)}.mode-option input[type=radio]{position:absolute;opacity:0}.mode-content{display:flex;align-items:flex-start;gap:.75rem}.mode-icon{font-size:1.5rem;line-height:1}.mode-text strong{display:block;margin-bottom:.25rem;color:var(--color-text-primary);transition:color .3s ease}.mode-text p{margin:0;font-size:.875rem;color:var(--color-text-secondary);transition:color .3s ease}.draft-notice{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1.25rem;border-radius:12px;margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 4px 6px #0000001a;animation:slideDown .4s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.draft-notice-content{display:flex;align-items:center;gap:1rem;flex:1}.draft-icon{font-size:2rem;line-height:1;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.draft-message{flex:1}.draft-message strong{display:block;font-size:1.125rem;margin-bottom:.25rem}.draft-actions{display:flex;gap:.75rem}.btn-draft-restore,.btn-draft-discard{padding:.625rem 1.25rem;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s;font-size:.9375rem}.btn-draft-restore{background-color:#fff;color:#667eea}.btn-draft-restore:hover{background-color:#f0f0f0;transform:translateY(-1px);box-shadow:0 2px 4px #0003}.btn-draft-discard{background-color:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3)}.btn-draft-discard:hover{background-color:#ffffff4d;transform:translateY(-1px)}.perch-modal-backdrop{position:fixed;inset:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.perch-modal{background:var(--color-bg-primary);border-radius:12px;max-width:95vw;max-height:95vh;width:1000px;display:flex;flex-direction:column;box-shadow:0 20px 60px var(--color-shadow-strong);animation:modalSlideIn .2s ease-out;transition:background-color .3s ease}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.perch-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border-light);transition:border-color .3s ease}.perch-modal-header h2{margin:0;font-size:1.25rem;color:var(--color-text-primary);transition:color .3s ease}.perch-modal-close{background:none;border:none;font-size:2rem;color:var(--color-text-secondary);cursor:pointer;padding:0;line-height:1;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.perch-modal-close:hover{background-color:var(--color-bg-secondary);color:var(--color-text-primary)}.perch-modal-tabs{display:flex;gap:0;padding:0 1rem;border-bottom:1px solid var(--color-border-light);transition:border-color .3s ease}.perch-tab{padding:.875rem 1.25rem;background:none;border:none;border-bottom:3px solid transparent;color:var(--color-text-secondary);font-weight:500;cursor:pointer;transition:all .2s;margin-bottom:-1px}.perch-tab:hover{color:var(--color-text-primary);background-color:var(--color-bg-secondary)}.perch-tab.active{color:var(--color-accent-primary);border-bottom-color:var(--color-accent-primary)}.perch-modal-content{flex:1;overflow:auto;padding:1rem}.perch-diagram-container{position:relative;display:inline-block;width:100%}.perch-diagram-image{width:100%;height:auto;display:block;border-radius:8px}.perch-diagram-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.perch-hotspot-group{pointer-events:auto;transition:all .15s ease-in-out}.perch-hotspot-circle{fill:#9b59b6e6;stroke:#fff;stroke-width:2;transition:all .15s ease-in-out}.perch-hotspot-group:hover .perch-hotspot-circle{fill:#3498db;r:28;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}.perch-hotspot-group.selected .perch-hotspot-circle{fill:#27ae60;stroke:#2ecc71;stroke-width:3;r:27}.perch-hotspot-text{fill:#fff;font-size:18px;font-weight:700;user-select:none}.perch-modal-footer{padding:.75rem 1.5rem;border-top:1px solid var(--color-border-light);background-color:var(--color-bg-secondary);border-radius:0 0 12px 12px;transition:background-color .3s ease,border-color .3s ease}.perch-modal-hint{margin:0;color:var(--color-text-secondary);font-size:.875rem;text-align:center;transition:color .3s ease}.view-perch-map-btn{background-color:#9b59b6;color:#fff;border:none;padding:.5rem .875rem;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.375rem}.view-perch-map-btn:hover{background-color:#8e44ad;transform:translateY(-1px);box-shadow:0 2px 6px #9b59b666}.view-perch-map-btn .map-icon{font-size:1rem}@media (max-width: 768px){.perch-modal{max-height:90vh;width:100%}.perch-modal-tabs{flex-direction:column;gap:0}.perch-tab{border-bottom:none;border-left:3px solid transparent}.perch-tab.active{border-left-color:#3498db;border-bottom-color:transparent}.perch-hotspot-text{font-size:14px}.perch-hotspot-circle{r:22}.perch-hotspot-group:hover .perch-hotspot-circle{r:25}.perch-hotspot-group.selected .perch-hotspot-circle{r:24}}.submission-modal-backdrop{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out;padding:20px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.submission-modal{background:var(--color-bg-primary);border-radius:12px;box-shadow:0 10px 40px var(--color-shadow-strong);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease-out;transition:background-color .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.submission-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--color-border-light);transition:border-color .3s ease}.submission-modal-header h2{margin:0;font-size:20px;font-weight:600;color:var(--color-text-primary);transition:color .3s ease}.submission-modal-close{background:none;border:none;font-size:28px;line-height:1;color:var(--color-text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.submission-modal-close:hover{background-color:var(--color-bg-secondary);color:var(--color-text-primary)}.submission-modal-content{padding:24px}.submission-modal-loading{text-align:center;padding:40px 20px}.loading-spinner{display:inline-block;margin-bottom:20px}.loading-spinner .spinner{width:50px;height:50px;border:4px solid var(--color-bg-tertiary);border-top:4px solid var(--color-accent-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{color:var(--color-text-secondary);font-size:15px;margin:0;transition:color .3s ease}.submission-instructions{color:var(--color-text-secondary);font-size:14px;line-height:1.6;margin-bottom:20px;transition:color .3s ease}.email-label{display:block;font-weight:500;color:var(--color-text-primary);margin-bottom:8px;font-size:14px;transition:color .3s ease}.email-input{width:100%;padding:12px;border:2px solid var(--color-border);border-radius:6px;font-size:15px;background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:border-color .2s,background-color .3s ease,color .3s ease}.email-input:focus{outline:none;border-color:var(--color-border-focus)}.email-input.error{border-color:var(--color-error)}.input-hint{display:block;font-size:13px;color:var(--color-text-secondary);margin-top:6px;transition:color .3s ease}.error-message{display:block;color:var(--color-error);font-size:13px;margin-top:6px;font-weight:500}.success-message{display:block;color:var(--color-success);font-size:13px;margin-top:8px;font-weight:500;animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.submission-actions{display:flex;gap:12px;margin-top:24px;justify-content:flex-end}.submission-actions .btn{flex:1;padding:12px 20px;border:none;border-radius:6px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s}.submission-actions .btn-primary{background-color:var(--color-accent-primary);color:#fff}.submission-actions .btn-primary:hover:not(:disabled){background-color:var(--color-accent-primary-hover)}.submission-actions .btn-primary:disabled{background-color:var(--color-accent-secondary);cursor:not-allowed;opacity:.6}.submission-actions .btn-secondary{background-color:var(--color-accent-secondary);color:#fff}.submission-actions .btn-secondary:hover{background-color:var(--color-accent-secondary-hover)}.submission-modal-success{text-align:center;padding:20px 0}.success-icon{width:64px;height:64px;border-radius:50%;background-color:var(--color-success);color:#fff;font-size:36px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;animation:scaleIn .3s ease-out}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.success-title{font-size:22px;font-weight:600;color:var(--color-text-primary);margin-bottom:12px;transition:color .3s ease}.success-message{color:var(--color-text-secondary);font-size:15px;line-height:1.6;margin-bottom:12px;transition:color .3s ease}.success-hint{color:var(--color-text-secondary);font-size:14px;margin-bottom:20px;transition:color .3s ease}.submission-modal-error{text-align:center;padding:20px 0}.error-icon{width:64px;height:64px;border-radius:50%;background-color:var(--color-error);color:#fff;font-size:36px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;animation:shake .5s ease-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.error-title{font-size:22px;font-weight:600;color:var(--color-text-primary);margin-bottom:12px;transition:color .3s ease}.error-message{color:var(--color-error);font-size:15px;line-height:1.6;margin-bottom:12px;font-weight:500}.error-hint{color:var(--color-text-secondary);font-size:14px;line-height:1.6;margin-bottom:20px;transition:color .3s ease}@media (max-width: 640px){.submission-modal-backdrop{padding:0;align-items:flex-end}.submission-modal{max-width:100%;border-radius:12px 12px 0 0;max-height:95vh}.submission-actions{flex-direction:column}.submission-actions .btn{width:100%}.email-input-group{flex-direction:column}.email-input-group .btn{width:100%}}.share-section{margin-top:24px}.divider{border:none;border-top:1px solid #e1e8ed;margin:24px 0 20px}.share-title{font-size:16px;font-weight:600;color:#2c3e50;margin:0 0 8px}.share-hint{font-size:14px;color:#7f8c8d;margin:0 0 16px}.email-input-group{display:flex;gap:8px;margin-bottom:8px}.email-input-group .email-input{flex:1;padding:10px 12px;border:1px solid #dfe6e9;border-radius:6px;font-size:14px;transition:all .2s ease}.email-input-group .email-input:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.email-input-group .email-input.has-error{border-color:#e74c3c}.email-input-group .btn{white-space:nowrap}.modal-footer{margin-top:20px;padding-top:20px;border-top:1px solid #e1e8ed;display:flex;justify-content:center}.btn-tertiary{background:transparent;color:#7f8c8d;border:1px solid #dfe6e9}.btn-tertiary:hover{background:#f8f9fa;border-color:#b2bec3}@media (prefers-reduced-motion: reduce){.submission-modal-backdrop,.submission-modal,.success-icon,.error-icon,.loading-spinner .spinner{animation:none}}.theme-toggle{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-primary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.theme-toggle:hover{background-color:var(--color-bg-tertiary);border-color:var(--color-accent-primary);transform:translateY(-1px);box-shadow:0 2px 4px var(--color-shadow)}.theme-toggle:active{transform:translateY(0)}.theme-toggle:focus{outline:2px solid var(--color-accent-primary);outline-offset:2px}.theme-icon{font-size:1.25rem;line-height:1;display:flex;align-items:center}.theme-label{line-height:1}@media (max-width: 640px){.theme-toggle{padding:.5rem .75rem;font-size:.8125rem}.theme-icon{font-size:1.125rem}}:root{--color-bg-body: #f5f5f5;--color-bg-primary: #ffffff;--color-bg-secondary: #f8f9fa;--color-bg-tertiary: #e9ecef;--color-text-primary: #2c3e50;--color-text-secondary: #7f8c8d;--color-text-tertiary: #34495e;--color-border: #ddd;--color-border-light: #e9ecef;--color-border-focus: #3498db;--color-accent-primary: #3498db;--color-accent-primary-hover: #2980b9;--color-accent-secondary: #95a5a6;--color-accent-secondary-hover: #7f8c8d;--color-success: #27ae60;--color-success-hover: #229954;--color-success-bg: #d5f4e6;--color-error: #e74c3c;--color-input-disabled-bg: #f8f9fa;--color-input-disabled-text: #6c757d;--color-shadow: rgba(0, 0, 0, .1);--color-shadow-strong: rgba(0, 0, 0, .3)}[data-theme=dark]{--color-bg-body: #1a1a1a;--color-bg-primary: #2d2d2d;--color-bg-secondary: #3a3a3a;--color-bg-tertiary: #4a4a4a;--color-text-primary: #e4e4e4;--color-text-secondary: #a0a0a0;--color-text-tertiary: #c8c8c8;--color-border: #4a4a4a;--color-border-light: #3a3a3a;--color-border-focus: #5dade2;--color-accent-primary: #5dade2;--color-accent-primary-hover: #3498db;--color-accent-secondary: #7f8c8d;--color-accent-secondary-hover: #95a5a6;--color-success: #2ecc71;--color-success-hover: #27ae60;--color-success-bg: #1e4d2b;--color-error: #e74c3c;--color-input-disabled-bg: #3a3a3a;--color-input-disabled-text: #7f8c8d;--color-shadow: rgba(0, 0, 0, .3);--color-shadow-strong: rgba(0, 0, 0, .6)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg-body);padding:20px;transition:background-color .3s ease}.app{max-width:1200px;margin:0 auto;background-color:var(--color-bg-primary);padding:30px;border-radius:8px;box-shadow:0 2px 4px var(--color-shadow);transition:background-color .3s ease,box-shadow .3s ease}h1{color:var(--color-text-primary);margin-bottom:10px;transition:color .3s ease}.subtitle{color:var(--color-text-secondary);margin-bottom:30px;transition:color .3s ease}.section{margin-bottom:30px}.section-title{font-size:18px;font-weight:600;color:var(--color-text-tertiary);margin-bottom:15px;padding-bottom:8px;border-bottom:2px solid var(--color-accent-primary);transition:color .3s ease,border-color .3s ease}.form-group{margin-bottom:15px}label{display:block;font-weight:500;margin-bottom:5px;color:var(--color-text-primary);transition:color .3s ease}input[type=text],input[type=date],select{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:4px;font-size:14px;background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:border-color .2s,background-color .3s ease,color .3s ease}input[type=text]:focus,input[type=date]:focus,select:focus{outline:none;border-color:var(--color-border-focus)}input.error,select.error{border-color:var(--color-error)}.field-error{color:var(--color-error);font-size:13px;margin-top:4px;display:block}.metadata-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:15px}.time-slots{display:grid;gap:20px;grid-template-columns:1fr}@media (min-width: 960px){.time-slots{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1400px){.time-slots{grid-template-columns:repeat(3,1fr)}}.time-slot{padding:15px;background-color:var(--color-bg-secondary);border-radius:6px;border:1px solid var(--color-border-light);transition:background-color .3s ease,border-color .3s ease}.time-slot-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.time-slot-time{font-weight:600;color:var(--color-accent-primary);font-size:16px;transition:color .3s ease}.copy-to-next-button{background:none;border:none;color:var(--color-success);font-size:13px;font-weight:500;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s;white-space:nowrap}.copy-to-next-button:hover{color:var(--color-success-hover);background-color:#27ae601a}.copy-to-next-button:active{transform:scale(.95)}.copy-to-next-button:focus{outline:2px solid var(--color-success);outline-offset:2px}.location-input{margin-top:10px}.location-input input{max-width:200px}.label-help-text{font-size:12px;color:var(--color-text-secondary);margin-bottom:5px;transition:color .3s ease}.time-range-inputs{display:flex;align-items:center;gap:12px}.time-range-inputs input[type=time]{flex:1;padding:8px 12px;border:1px solid var(--color-border);border-radius:4px;font-size:14px;background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:border-color .2s,background-color .3s ease,color .3s ease}.time-range-inputs input[type=time]:focus{outline:none;border-color:var(--color-border-focus)}.time-range-inputs input[type=time].error{border-color:var(--color-error)}.time-range-divider{color:var(--color-text-secondary);font-size:14px;white-space:nowrap;transition:color .3s ease}.required{color:var(--color-error)}.button-group{display:flex;gap:10px;margin-top:30px}button{padding:10px 20px;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-primary{background-color:var(--color-accent-primary);color:#fff}.btn-primary:hover{background-color:var(--color-accent-primary-hover)}.btn-secondary{background-color:var(--color-accent-secondary);color:#fff}.btn-secondary:hover{background-color:var(--color-accent-secondary-hover)}.output-preview{margin-top:30px;padding:20px;background-color:var(--color-bg-secondary);border-radius:6px;border:1px solid var(--color-border-light);transition:background-color .3s ease,border-color .3s ease}.output-preview h3{margin-bottom:15px;color:var(--color-text-primary);transition:color .3s ease}.output-preview pre{background-color:var(--color-bg-tertiary);color:var(--color-text-primary);padding:15px;border-radius:4px;overflow-x:auto;font-size:12px;line-height:1.5;transition:background-color .3s ease,color .3s ease}.success-message{color:var(--color-success);font-size:14px;margin-top:10px;padding:10px;background-color:var(--color-success-bg);border-radius:4px;transition:color .3s ease,background-color .3s ease}.react-select__control{background-color:var(--color-bg-primary)!important;border-color:var(--color-border)!important;min-height:38px!important;transition:background-color .3s ease,border-color .2s ease!important}.react-select__control:hover{border-color:var(--color-border)!important}.react-select__control--is-focused{border-color:var(--color-border-focus)!important;box-shadow:none!important}.react-select-container--error .react-select__control{border-color:var(--color-error)!important}.react-select__menu{background-color:var(--color-bg-primary)!important;transition:background-color .3s ease}.react-select__option{background-color:var(--color-bg-primary)!important;color:var(--color-text-primary)!important;transition:background-color .2s ease,color .3s ease}.react-select__option--is-focused{background-color:var(--color-bg-secondary)!important}.react-select__option--is-selected{background-color:var(--color-accent-primary)!important;color:#fff!important}.react-select__single-value{color:var(--color-text-primary)!important;transition:color .3s ease}.react-select__input-container{color:var(--color-text-primary)!important}.react-select__placeholder{color:var(--color-text-primary)!important;opacity:.5}.react-select__group-heading{color:var(--color-text-primary)!important;font-weight:600;transition:color .3s ease}.react-select__indicator-separator{background-color:var(--color-border)!important;transition:background-color .3s ease}.react-select__dropdown-indicator,.react-select__clear-indicator{color:var(--color-text-secondary)!important;transition:color .3s ease}.react-select__clear-indicator:hover,.react-select__dropdown-indicator:hover{color:var(--color-text-primary)!important}
