:root{--color-bg-primary: #FAF9F6;--color-bg-secondary: #F5F3F0;--color-text-primary: #2C2C2C;--color-text-secondary: #5A5A5A;--color-earth-light: #D4C4A8;--color-earth-medium: #B8A082;--color-earth-dark: #8B7355;--color-green-light: #C8D5B9;--color-green-medium: #9BA888;--color-green-dark: #6B7A5F;--color-accent: #8B7355;--color-border: #E5E0D6;--color-shadow: rgba(44, 44, 44, .1);--pillar-ecological: #9BA888;--pillar-cultural: #B8A082;--pillar-food: #C8D5B9;--pillar-ecorestoration: #6B7A5F;--pillar-spirituality: #D4C4A8;--element-fire: #C97D60;--element-water: #7A9CC6;--element-air: #B8C5A8;--element-earth: #8B7355;--font-primary: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-base: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--spacing-3xl: 64px;--spacing-4xl: 96px}*{box-sizing:border-box}:root{font-family:var(--font-primary);line-height:var(--line-height-normal);font-weight:var(--font-weight-normal);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%;min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{margin:0;font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-primary)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}button{font-family:var(--font-primary);font-size:var(--font-size-base);cursor:pointer;border:none;border-radius:8px;padding:var(--spacing-sm) var(--spacing-base);transition:all .2s ease;min-height:44px}button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}.app{width:100%;height:100vh;display:flex;flex-direction:column;overflow:hidden}.app-header{background-color:var(--color-bg-secondary);padding:var(--spacing-base) var(--spacing-lg);border-bottom:1px solid var(--color-border);z-index:1000;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-base)}.app-header h1{font-size:var(--font-size-2xl);margin:0;color:var(--color-text-primary)}.app-header p{margin:var(--spacing-xs) 0 0 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.suggest-button{background-color:var(--color-accent);color:#fff;padding:var(--spacing-sm) var(--spacing-lg);font-weight:var(--font-weight-medium);border-radius:8px;transition:background-color .2s ease}.suggest-button:hover{background-color:var(--color-earth-dark)}.app-main{flex:1;display:flex;position:relative;overflow:hidden}.app-sidebar{width:320px;background-color:var(--color-bg-secondary);border-right:1px solid var(--color-border);padding:var(--spacing-lg);overflow-y:auto;z-index:100}.app-map-container{flex:1;position:relative}.mobile-sidebar-toggle{display:none}.skip-link{position:absolute;top:-40px;left:0;background:var(--color-accent);color:#fff;padding:8px;text-decoration:none;z-index:10000;border-radius:0 0 4px}.skip-link:focus{top:0}@media(max-width:768px){.app-header{flex-direction:column;align-items:flex-start}.app-header h1{font-size:var(--font-size-xl)}.suggest-button{width:100%}.app-sidebar{position:fixed;bottom:0;left:0;right:0;width:100%;max-height:70vh;border-right:none;border-top:1px solid var(--color-border);border-radius:16px 16px 0 0;box-shadow:0 -4px 12px var(--color-shadow);transform:translateY(100%);transition:transform .3s ease;z-index:200}.app-sidebar.sidebar-open{transform:translateY(0)}.mobile-sidebar-toggle{position:fixed;bottom:20px;right:20px;width:56px;height:56px;border-radius:50%;background-color:var(--color-accent);color:#fff;border:none;font-size:24px;cursor:pointer;box-shadow:0 4px 12px var(--color-shadow);z-index:300;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.mobile-sidebar-toggle:hover{background-color:var(--color-earth-dark);transform:scale(1.05)}.mobile-sidebar-toggle:active{transform:scale(.95)}}.view-mode-toggle-desktop{display:flex;align-items:center}.view-toggle-switch{position:relative;display:inline-block;width:120px;height:36px}.view-toggle-switch input{opacity:0;width:0;height:0}.view-toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:18px;transition:.3s;display:flex;align-items:center;justify-content:space-between;padding:0}.view-toggle-slider:before{position:absolute;content:"";height:28px;width:56px;left:4px;bottom:2px;background-color:var(--color-accent);border-radius:14px;transition:.3s}.view-toggle-switch input:checked+.view-toggle-slider:before{transform:translate(56px)}.view-toggle-label-left,.view-toggle-label-right{flex:1;display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);z-index:1;transition:color .3s;pointer-events:none}.view-toggle-switch input:checked+.view-toggle-slider .view-toggle-label-left{color:var(--color-text-secondary)}.view-toggle-switch input:not(:checked)+.view-toggle-slider .view-toggle-label-left{color:var(--color-text-primary)}.view-toggle-switch input:checked+.view-toggle-slider .view-toggle-label-right{color:var(--color-text-primary)}.view-toggle-switch input:not(:checked)+.view-toggle-slider .view-toggle-label-right{color:var(--color-text-secondary)}.view-toggle-switch input:focus+.view-toggle-slider{outline:2px solid var(--color-accent);outline-offset:2px}.view-mode-tabs-mobile{display:none}@media(max-width:640px){.app-main{flex-direction:column}.view-mode-tabs-mobile{flex:0 0 auto}.app-map-container{flex:1;min-height:0}.view-mode-toggle-desktop{display:none}.view-mode-tabs-mobile{display:flex;width:100%;border-bottom:2px solid var(--color-border);background-color:var(--color-bg-primary);z-index:50}.view-tab{flex:1;padding:var(--spacing-base) var(--spacing-lg);background:none;border:none;border-bottom:3px solid transparent;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.view-tab:hover{color:var(--color-text-primary);background-color:var(--color-bg-secondary)}.view-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:var(--font-weight-semibold)}.view-tab:focus{outline:2px solid var(--color-accent);outline-offset:-2px}}.personalization-toggle-container{margin-top:var(--spacing-base);padding:var(--spacing-base);background-color:var(--color-bg-primary);border-radius:8px;border:1px solid var(--color-border)}.personalization-toggle-label{display:flex;align-items:center;justify-content:space-between;cursor:pointer;gap:var(--spacing-base)}.toggle-label-text{font-size:var(--font-size-sm);color:var(--color-text-primary);flex:1}.toggle-label-text strong{color:var(--color-accent);font-weight:var(--font-weight-semibold)}.personalization-toggle-switch{position:relative;width:48px;height:24px;flex-shrink:0}.personalization-toggle-input{position:absolute;opacity:0;width:0;height:0}.personalization-toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:var(--color-bg-secondary);border:1px solid var(--color-border);transition:.3s;border-radius:24px;overflow:hidden}.personalization-toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:2px;bottom:2px;background-color:var(--color-text-secondary);transition:.3s;border-radius:50%}.personalization-toggle-input:checked+.personalization-toggle-slider{background-color:var(--color-accent);border-color:var(--color-accent)}.personalization-toggle-input:checked+.personalization-toggle-slider:before{transform:translate(24px);background-color:#fff}.toggle-hint{margin-top:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:var(--line-height-normal)}.list-sort-controls{margin-top:var(--spacing-base);padding:var(--spacing-md);background-color:var(--color-bg-primary);border-radius:8px;border:1px solid var(--color-border)}.sort-label{display:block;margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.sort-select{width:100%;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:6px;font-size:var(--font-size-base);color:var(--color-text-primary);cursor:pointer;transition:all .2s ease}.sort-select:hover{border-color:var(--color-accent);background-color:var(--color-bg-secondary)}.sort-select:focus{outline:2px solid var(--color-accent);outline-offset:2px}.star-rating{display:inline-flex;align-items:center;gap:var(--spacing-xs)}.star-rating-small{gap:2px}.star-rating-medium{gap:var(--spacing-xs)}.star-rating-large{gap:var(--spacing-sm)}.star{background:none;border:none;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform .1s ease;color:var(--color-border)}.star:not(:disabled):hover{transform:scale(1.1)}.star:not(:disabled):active{transform:scale(.95)}.star:disabled{cursor:default}.star-icon{display:inline-block;line-height:1;-webkit-user-select:none;user-select:none}.star-rating-small .star-icon{font-size:14px}.star-rating-medium .star-icon{font-size:20px}.star-rating-large .star-icon{font-size:28px}.star-filled{color:#ffb800;filter:drop-shadow(0 1px 2px rgba(255,184,0,.3))}.star-empty{color:var(--color-border)}.star-rating-readonly .star{cursor:default}.star-rating-readonly .star:hover{transform:none}.rating-value{margin-left:var(--spacing-sm);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.star-rating-small .rating-value{font-size:var(--font-size-sm);margin-left:var(--spacing-xs)}.star-rating-large .rating-value{font-size:var(--font-size-lg);margin-left:var(--spacing-base)}.appointment-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:var(--spacing-base)}.appointment-modal-content{background-color:var(--color-bg-primary);border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0003;position:relative;z-index:2001}.appointment-modal-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.appointment-modal-header h2{margin:0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.appointment-modal-close-button{background:none;border:none;font-size:var(--font-size-2xl);color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-xs);line-height:1;transition:color .2s}.appointment-modal-close-button:hover{color:var(--color-text-primary)}.appointment-modal-form{display:flex;flex-direction:column;height:100%}.appointment-modal-body{padding:var(--spacing-lg);flex:1;overflow-y:auto}.form-group .required{color:var(--color-accent)}.form-group input[type=text],.form-group input[type=datetime-local],.form-group input[type=date],.form-group input[type=time],.form-group input[type=number],.form-group select,.form-group textarea{width:100%;padding:var(--spacing-base);border:2px solid var(--color-border);border-radius:8px;font-size:var(--font-size-base);font-family:var(--font-primary);color:var(--color-text-primary);background-color:var(--color-bg-primary);transition:border-color .2s}.form-group input[type=text],.form-group input[type=number],.form-group select,.form-group textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-group input[type=datetime-local]::-webkit-calendar-picker-indicator,.form-group input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:1;padding:4px}.time-picker-container{display:flex;align-items:center;gap:var(--spacing-sm)}.time-picker-container select{flex:1;padding:var(--spacing-base);border:2px solid var(--color-border);border-radius:8px;font-size:var(--font-size-base);font-family:var(--font-primary);color:var(--color-text-primary);background-color:var(--color-bg-primary);transition:border-color .2s;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235A5A5A' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-sm) center;background-size:12px;padding-right:var(--spacing-xl)}.time-picker-container select:focus{outline:none;border-color:var(--color-accent)}.time-picker-container select.error{border-color:#d32f2f}.time-separator{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);padding:0 var(--spacing-xs)}.time-picker-container select#ampm{flex:0 0 80px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-accent)}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#d32f2f}.form-group textarea{resize:vertical;min-height:80px}.selected-resource{padding:var(--spacing-base);background-color:var(--color-bg-secondary);border-radius:8px;font-size:var(--font-size-base);color:var(--color-text-primary)}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-weight:var(--font-weight-normal)}.checkbox-label input[type=checkbox]{width:18px;height:18px;margin:0;cursor:pointer;flex-shrink:0}.checkbox-label span{-webkit-user-select:none;user-select:none}.reminder-options{margin-top:var(--spacing-base);display:flex;flex-direction:column;gap:var(--spacing-sm);padding-left:var(--spacing-lg)}.reminder-option{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:var(--font-weight-normal);cursor:pointer}.reminder-option input[type=checkbox]{width:18px;height:18px;margin:0;cursor:pointer;flex-shrink:0}.error-message{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:#d32f2f}.submit-error{margin-top:var(--spacing-base);padding:var(--spacing-base);background-color:#ffebee;border-radius:8px;border:1px solid #d32f2f}.appointment-modal-actions{padding:var(--spacing-lg);border-top:1px solid var(--color-border);display:flex;gap:var(--spacing-base);justify-content:flex-end}.appointment-modal-actions .button-primary,.appointment-modal-actions .button-secondary{padding:var(--spacing-base) var(--spacing-lg);border-radius:8px;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s;border:none}.appointment-modal-actions .button-primary{background-color:var(--color-accent);color:#fff}.appointment-modal-actions .button-primary:hover:not(:disabled){background-color:var(--color-earth-dark)}.appointment-modal-actions .button-primary:disabled{opacity:.5;cursor:not-allowed}.appointment-modal-actions .button-secondary{background-color:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border)}.appointment-modal-actions .button-secondary:hover{background-color:var(--color-border)}.complete-visit-overlay{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;padding:24px;z-index:9998}.complete-visit-modal{width:min(560px,100%);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:14px;box-shadow:0 18px 50px #0000002e;overflow:hidden}.complete-visit-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.complete-visit-header h2{margin:0;font-size:var(--font-size-xl);color:var(--color-text-primary)}.complete-visit-close{border:none;background:none;cursor:pointer;font-size:22px;color:var(--color-text-secondary)}.complete-visit-close:hover{color:var(--color-text-primary)}.complete-visit-copy{margin:var(--spacing-lg);margin-bottom:var(--spacing-base);color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.complete-visit-service{margin:0 var(--spacing-lg);padding:var(--spacing-base);border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-secondary)}.service-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.service-elements{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.service-element-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-primary);font-size:var(--font-size-sm)}.service-element-icon{opacity:.9}.complete-visit-note{margin:var(--spacing-lg)}.note-toggle{border:none;background:none;color:var(--color-accent);cursor:pointer;text-decoration:underline;font-size:var(--font-size-sm);padding:0}.note-input{margin-top:var(--spacing-sm);width:100%;border:1px solid var(--color-border);border-radius:10px;padding:var(--spacing-sm) var(--spacing-base);font-size:var(--font-size-base);resize:vertical}.complete-visit-error{margin:0 var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-base);border-radius:10px;border:1px solid rgba(160,90,60,.35);background:#a05a3c14;color:var(--color-text-primary)}.cooldown-hint{margin-top:6px;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.complete-visit-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--color-border)}.celebration{padding:var(--spacing-xl) var(--spacing-lg);text-align:center}.celebration-sparkle{font-size:28px;color:var(--color-accent);display:inline-block;animation:sparkle-pulse .7s ease-in-out infinite alternate}.celebration-title{margin-top:var(--spacing-sm);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.celebration-subtitle{margin-top:6px;color:var(--color-text-secondary)}.celebration-breakdown{margin-top:var(--spacing-lg);display:grid;gap:10px;justify-items:center}.celebration-row{width:min(320px,100%);display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:12px;border:1px solid var(--color-border);background:var(--color-bg-secondary)}.celebration-el{display:inline-flex;align-items:center;gap:8px;color:var(--color-text-primary)}.celebration-icon{opacity:.9}.celebration-xp{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}@keyframes sparkle-pulse{0%{transform:scale(1);opacity:.8}to{transform:scale(1.12);opacity:1}}.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%);z-index:9999;max-width:min(520px,calc(100vw - 32px));width:fit-content;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 10px 30px #0000001f;display:flex;align-items:center;gap:var(--spacing-base);padding:var(--spacing-sm) var(--spacing-base);animation:toast-in .16s ease-out}.toast-content{font-size:var(--font-size-sm);color:var(--color-text-primary)}.toast-close{border:none;background:none;cursor:pointer;font-size:20px;line-height:1;color:var(--color-text-secondary);padding:0 6px}.toast-close:hover{color:var(--color-text-primary)}@keyframes toast-in{0%{transform:translate(-50%) translateY(10px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.drawer-overlay{position:fixed;inset:0;background-color:#2c2c2c4d;z-index:999;animation:fadeIn .2s ease}.resource-drawer{position:fixed;right:0;top:0;bottom:0;width:100%;max-width:480px;background-color:var(--color-bg-secondary);box-shadow:-4px 0 24px var(--color-shadow);z-index:1000;transform:translate(100%);transition:transform .3s ease;display:flex;flex-direction:column;overflow:hidden}.resource-drawer.drawer-open{transform:translate(0)}.drawer-header{padding:var(--spacing-base);border-bottom:1px solid var(--color-border);display:flex;justify-content:flex-end}.drawer-close-button{width:40px;height:40px;border-radius:50%;background-color:var(--color-bg-primary);border:1px solid var(--color-border);font-size:24px;line-height:1;color:var(--color-text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;min-height:40px}.drawer-close-button:hover{background-color:var(--color-earth-light);border-color:var(--color-earth-medium)}.drawer-content{flex:1;overflow-y:auto;padding:var(--spacing-lg)}.resource-header{margin-bottom:var(--spacing-lg)}.resource-title-section{display:flex;align-items:flex-start;gap:var(--spacing-base);flex-wrap:wrap;margin-bottom:var(--spacing-base)}.resource-name{font-size:var(--font-size-2xl);margin:0;color:var(--color-text-primary);line-height:var(--line-height-tight);flex:1;min-width:200px}.resource-rating-display{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-base);background-color:var(--color-bg-primary);border-radius:8px;border:1px solid var(--color-border)}.rating-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.pending-badge{display:inline-block;padding:4px 12px;background-color:var(--color-earth-medium);color:#fff;border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);margin-top:var(--spacing-xs)}.recommended-badge{display:inline-block;padding:4px 12px;background-color:var(--color-accent);color:#fff;border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);margin-top:var(--spacing-xs)}.resource-pillars{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.pillar-badge{padding:6px 12px;border-radius:16px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:#fff}.resource-section{margin-bottom:var(--spacing-xl)}.section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-sm) 0;color:var(--color-text-primary)}.resource-description{font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--color-text-primary);margin:0}.resource-address{font-size:var(--font-size-base);color:var(--color-text-primary);margin:0;line-height:var(--line-height-normal)}.contact-info{font-size:var(--font-size-base);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0;line-height:var(--line-height-normal)}.contact-info a{color:var(--color-accent);text-decoration:none}.contact-info a:hover{text-decoration:underline}.resource-hours{font-size:var(--font-size-base);color:var(--color-text-primary);margin:0}.intent-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.intent-tag{padding:6px 12px;background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:16px;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.element-badges{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.element-badge{display:flex;align-items:center;gap:var(--spacing-xs);padding:6px 12px;border-radius:16px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:#fff}.recommendation-reasons{margin:0;padding-left:var(--spacing-lg);font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--color-text-primary)}.recommendation-reasons li{margin-bottom:var(--spacing-xs)}.resource-actions{padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.remove-suggestion-button{width:100%;padding:var(--spacing-base) var(--spacing-lg);background-color:transparent;color:var(--color-text-secondary);border:2px solid var(--color-border);border-radius:8px;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s;margin-bottom:var(--spacing-base)}.remove-suggestion-button:hover{background-color:var(--color-bg-primary);border-color:var(--color-text-secondary);color:var(--color-text-primary)}.schedule-appointment-button{width:100%;padding:var(--spacing-base) var(--spacing-lg);background-color:var(--color-accent);color:#fff;border:none;border-radius:8px;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .2s;margin-bottom:var(--spacing-sm)}.schedule-appointment-button:hover{background-color:var(--color-earth-dark)}.appointment-count{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center}@media(max-width:768px){.resource-drawer{max-width:100%;border-radius:16px 16px 0 0}.resource-name{font-size:var(--font-size-xl)}}.survey-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:var(--spacing-base)}.survey-content{background-color:var(--color-bg-primary);border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0003}.survey-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.survey-header h2{margin:0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.survey-close-button{background:none;border:none;font-size:var(--font-size-2xl);color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-xs);line-height:1;transition:color .2s}.survey-close-button:hover{color:var(--color-text-primary)}.survey-progress{padding:var(--spacing-base) var(--spacing-lg);border-bottom:1px solid var(--color-border)}.survey-body{padding:var(--spacing-lg)}.disclaimer-content{margin-bottom:var(--spacing-xl)}.disclaimer-content p{margin-bottom:var(--spacing-base);line-height:var(--line-height-relaxed);color:var(--color-text-primary)}.answer-option{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-base) var(--spacing-lg);background-color:var(--color-bg-primary);border:2px solid var(--color-border);border-radius:8px;cursor:pointer;transition:all .2s;text-align:left;font-size:var(--font-size-base);color:var(--color-text-primary)}.answer-option:hover:not(.disabled){border-color:var(--color-accent);background-color:var(--color-bg-secondary)}.answer-option.selected{border-color:var(--color-accent);background-color:var(--color-bg-secondary)}.answer-option.disabled{opacity:.5;cursor:not-allowed}.answer-label{flex:1}.answer-checkbox{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;background-color:var(--color-accent);color:#fff;font-weight:var(--font-weight-semibold)}.selection-hint{margin-top:var(--spacing-base);font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center}.survey-actions{display:flex;gap:var(--spacing-base);align-items:center}.survey-actions .button-primary,.survey-actions .button-secondary{padding:var(--spacing-base) var(--spacing-lg);border-radius:8px;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s;border:none}.survey-actions .button-primary{background-color:var(--color-accent);color:#fff}.survey-actions .button-primary:hover:not(:disabled){background-color:var(--color-earth-dark)}.survey-actions .button-primary:disabled{opacity:.5;cursor:not-allowed}.survey-actions .button-secondary{background-color:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border)}.survey-actions .button-secondary:hover{background-color:var(--color-border)}.profile-summary-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:var(--spacing-base)}.profile-summary-content{background-color:var(--color-bg-primary);border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0003}.profile-summary-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.profile-summary-header h2{margin:0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.profile-summary-body{padding:var(--spacing-lg)}.dominant-elements{margin-bottom:var(--spacing-xl);text-align:center}.dominant-elements h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-lg)}.element-badges-large{display:flex;gap:var(--spacing-base);justify-content:center;flex-wrap:wrap}.element-badge-large{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-base) var(--spacing-lg);border-radius:24px;font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg)}.element-icon-large{font-size:var(--font-size-xl)}.element-name{color:#fff}.balanced-profile{padding:var(--spacing-lg)}.balanced-profile h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-base)}.balanced-profile p{color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.profile-synopsis{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background-color:var(--color-bg-secondary);border-radius:8px}.profile-synopsis p{margin:0;font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--color-text-primary)}.element-scores{margin-top:var(--spacing-xl)}.element-scores h4{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-base)}.scores-grid{display:flex;flex-direction:column;gap:var(--spacing-sm)}.score-item{display:flex;align-items:center;gap:var(--spacing-base)}.score-label{display:flex;align-items:center;gap:var(--spacing-xs);min-width:80px;font-size:var(--font-size-sm);color:var(--color-text-primary)}.score-icon{font-size:var(--font-size-base)}.score-bar-container{flex:1;height:8px;background-color:var(--color-bg-secondary);border-radius:4px;overflow:hidden}.score-bar{height:100%;transition:width .3s ease}.score-value{min-width:30px;text-align:right;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.profile-summary-actions{display:flex;gap:var(--spacing-base);padding:var(--spacing-lg);border-top:1px solid var(--color-border)}.profile-summary-actions .button-primary,.profile-summary-actions .button-secondary{flex:1;padding:var(--spacing-base) var(--spacing-lg);border-radius:8px;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s;border:none}.profile-summary-actions .button-primary{background-color:var(--color-accent);color:#fff}.profile-summary-actions .button-primary:hover{background-color:var(--color-earth-dark)}.profile-summary-actions .button-secondary{background-color:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border)}.profile-summary-actions .button-secondary:hover{background-color:var(--color-border)}.appointments-list-container{background-color:var(--color-bg-primary);border-radius:12px;max-width:800px;width:100%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003}.appointments-list-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.appointments-list-header h2{margin:0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.appointments-list-close{background:none;border:none;font-size:var(--font-size-2xl);color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-xs);line-height:1;transition:color .2s}.appointments-list-close:hover{color:var(--color-text-primary)}.appointments-list-tabs{display:flex;border-bottom:1px solid var(--color-border);padding:0 var(--spacing-lg)}.tab-button{padding:var(--spacing-base) var(--spacing-lg);background:none;border:none;border-bottom:2px solid transparent;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all .2s}.tab-button:hover{color:var(--color-text-primary)}.tab-button.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.appointments-list-filters{padding:var(--spacing-base) var(--spacing-lg);display:flex;gap:var(--spacing-base);border-bottom:1px solid var(--color-border)}.filter-select{flex:1;padding:var(--spacing-sm) var(--spacing-base);border:2px solid var(--color-border);border-radius:8px;font-size:var(--font-size-base);font-family:var(--font-primary);color:var(--color-text-primary);background-color:var(--color-bg-primary);cursor:pointer}.filter-select:focus{outline:none;border-color:var(--color-accent)}.appointments-list-content{flex:1;overflow-y:auto;padding:var(--spacing-lg)}.empty-state{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary)}.appointments-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-base)}.appointment-item{padding:var(--spacing-lg);background-color:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:8px;cursor:pointer;transition:all .2s}.appointment-item:hover{border-color:var(--color-accent);background-color:var(--color-bg-primary)}.appointment-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-base)}.appointment-item-header h3{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.status-badge{padding:var(--spacing-xs) var(--spacing-sm);border-radius:4px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.status-badge.scheduled{background-color:var(--color-green-light);color:var(--color-green-dark)}.status-badge.completed{background-color:var(--color-green-medium);color:#fff}.status-badge.missed{background-color:#ffebee;color:#c62828}.status-badge.pending-survey{background-color:var(--color-accent);color:#fff}.status-badge.cancelled{background-color:var(--color-bg-secondary);color:var(--color-text-secondary)}.appointment-item-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-base)}.appointment-detail{display:flex;flex-direction:column;gap:var(--spacing-xs)}.detail-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.detail-value{font-size:var(--font-size-base);color:var(--color-text-primary)}.appointment-survey-prompt{margin-top:var(--spacing-base);padding:var(--spacing-sm);background-color:var(--color-accent);color:#fff;border-radius:4px;font-size:var(--font-size-sm);text-align:center}.appointment-actions{margin-top:var(--spacing-base);display:flex;gap:var(--spacing-sm);padding-top:var(--spacing-base);border-top:1px solid var(--color-border)}.appointment-action-button{flex:1;padding:var(--spacing-sm) var(--spacing-base);border:1px solid var(--color-border);border-radius:6px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s}.appointment-action-button.complete-button{background-color:var(--color-green-medium);color:#fff;border-color:var(--color-green-medium)}.appointment-action-button.complete-button:hover{background-color:var(--color-green-dark);border-color:var(--color-green-dark)}.appointment-action-button.missed-button{background-color:var(--color-bg-secondary);color:var(--color-text-primary);border-color:var(--color-border)}.appointment-action-button.missed-button:hover{background-color:#ffebee;border-color:#d32f2f;color:#d32f2f}.experience-timeline-container{background-color:var(--color-bg-primary);border-radius:12px;max-width:800px;width:100%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003}.experience-timeline-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.experience-timeline-header h2{margin:0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.experience-timeline-close{background:none;border:none;font-size:var(--font-size-2xl);color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-xs);line-height:1;transition:color .2s}.experience-timeline-close:hover{color:var(--color-text-primary)}.experience-timeline-empty{padding:var(--spacing-3xl);text-align:center;color:var(--color-text-secondary)}.experience-timeline-content{flex:1;overflow-y:auto;padding:var(--spacing-lg);position:relative}.timeline-line{position:absolute;left:20px;top:0;bottom:0;width:2px;background-color:var(--color-border)}.timeline-items{position:relative;display:flex;flex-direction:column;gap:var(--spacing-xl)}.timeline-item{position:relative;display:flex;align-items:flex-start;gap:var(--spacing-lg);padding-left:var(--spacing-xl)}.timeline-marker{position:absolute;left:12px;top:8px;width:16px;height:16px;border-radius:50%;background-color:var(--color-accent);border:3px solid var(--color-bg-primary);z-index:1}.timeline-content{flex:1;padding:var(--spacing-base);background-color:var(--color-bg-secondary);border-radius:8px;border:1px solid var(--color-border)}.timeline-date{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:var(--spacing-xs)}.timeline-resource{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.timeline-rating{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.rating-stars{font-size:var(--font-size-base);color:var(--color-accent)}.trend-indicator{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.trend-indicator.trend-up{color:var(--color-green-medium)}.trend-indicator.trend-down{color:#d32f2f}.trend-indicator.trend-stable{color:var(--color-text-secondary)}.timeline-feel-better,.timeline-state,.timeline-symptoms{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm)}.timeline-feel-better .label,.timeline-state .label,.timeline-symptoms .label{font-weight:var(--font-weight-medium);color:var(--color-text-secondary);min-width:80px}.timeline-feel-better .value,.timeline-state .value,.timeline-symptoms .value{color:var(--color-text-primary);flex:1}.timeline-feel-better .value.feel-yes{color:var(--color-green-medium)}.timeline-feel-better .value.feel-no{color:#d32f2f}.timeline-symptoms{margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--color-border)}.health-dashboard-container{background-color:var(--color-bg-primary);border-radius:12px;max-width:900px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003}.health-dashboard-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.health-dashboard-header h2{margin:0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.health-dashboard-close{background:none;border:none;font-size:var(--font-size-2xl);color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-xs);line-height:1;transition:color .2s}.health-dashboard-close:hover{color:var(--color-text-primary)}.health-dashboard-content{flex:1;overflow-y:auto;padding:var(--spacing-lg)}.dashboard-section{margin-bottom:var(--spacing-xl)}.dashboard-section h3{margin:0 0 var(--spacing-lg) 0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.dashboard-section h4{margin:0 0 var(--spacing-base) 0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-base)}.stat-card{padding:var(--spacing-lg);background-color:var(--color-bg-secondary);border-radius:8px;border:1px solid var(--color-border);text-align:center}.stat-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);color:var(--color-accent);margin-bottom:var(--spacing-xs)}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.trend-indicator-large{padding:var(--spacing-lg);background-color:var(--color-bg-secondary);border-radius:8px;border:1px solid var(--color-border);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);text-align:center}.trend-indicator-large.trend-improving{color:var(--color-green-medium)}.trend-indicator-large.trend-declining{color:#d32f2f}.trend-indicator-large.trend-stable{color:var(--color-text-secondary)}.alerts-list{display:flex;flex-direction:column;gap:var(--spacing-base)}.alert-item{padding:var(--spacing-base);background-color:var(--color-bg-secondary);border-radius:8px;border-left:4px solid}.alert-header{margin-bottom:var(--spacing-xs)}.alert-severity{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase}.alert-message{font-size:var(--font-size-base);color:var(--color-text-primary);line-height:var(--line-height-relaxed)}.state-distribution{margin-bottom:var(--spacing-lg)}.distribution-bars{display:flex;flex-direction:column;gap:var(--spacing-sm)}.distribution-item{display:flex;align-items:center;gap:var(--spacing-base)}.distribution-label{min-width:120px;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.distribution-bar-container{flex:1;height:24px;background-color:var(--color-bg-secondary);border-radius:4px;overflow:hidden}.distribution-bar{height:100%;background-color:var(--color-accent);transition:width .3s ease}.distribution-value{min-width:30px;text-align:right;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.export-buttons{display:flex;flex-direction:column;gap:var(--spacing-base)}.export-button{padding:var(--spacing-base) var(--spacing-lg);background-color:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:8px;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);cursor:pointer;transition:all .2s}.export-button:hover{background-color:var(--color-border);border-color:var(--color-accent)}.profile-menu-container{position:relative}.profile-menu-button{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-base);background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;transition:all .2s;font-size:var(--font-size-sm);color:var(--color-text-primary)}.profile-menu-button:hover{background-color:var(--color-bg-secondary);border-color:var(--color-earth-medium)}.profile-menu-button-content{display:flex;align-items:center;gap:var(--spacing-xs)}.profile-menu-icons{display:flex;gap:2px}.profile-menu-icon{font-size:var(--font-size-base)}.profile-menu-label{font-weight:var(--font-weight-medium)}.profile-menu-arrow{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-left:var(--spacing-xs)}.profile-menu-dropdown{position:absolute;top:calc(100% + var(--spacing-xs));right:0;background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:280px;max-width:320px;max-height:80vh;overflow-y:auto;overflow-x:hidden;z-index:1000;animation:slideDown .2s ease;scroll-behavior:smooth}.profile-menu-backdrop{position:fixed;inset:0;background:#00000059;z-index:999}.profile-menu-dropdown::-webkit-scrollbar{width:8px}.profile-menu-dropdown::-webkit-scrollbar-track{background:var(--color-bg-secondary);border-radius:4px}.profile-menu-dropdown::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.profile-menu-dropdown::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.profile-menu-header{padding:var(--spacing-base) var(--spacing-lg);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-base)}.profile-menu-header h3{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.profile-menu-close{border:none;background:none;cursor:pointer;font-size:18px;color:var(--color-text-secondary);padding:6px 8px;line-height:1;border-radius:8px}.profile-menu-close:hover{color:var(--color-text-primary);background:var(--color-bg-secondary)}.profile-menu-close:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.profile-menu-dropdown.mobile-sheet .profile-menu-close{display:inline-flex}.profile-menu-dropdown:not(.mobile-sheet) .profile-menu-close{display:none}.profile-menu-synopsis{padding:var(--spacing-base) var(--spacing-lg);border-bottom:1px solid var(--color-border)}.profile-menu-synopsis p{margin:0;font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}.profile-menu-scores{padding:var(--spacing-base) var(--spacing-lg);border-bottom:1px solid var(--color-border)}.profile-menu-scores h4{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.profile-menu-scores-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.profile-menu-score-item{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm)}.profile-menu-score-icon{font-size:var(--font-size-base)}.profile-menu-score-name{flex:1;color:var(--color-text-primary)}.profile-menu-score-value{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.profile-menu-section{padding:var(--spacing-base) var(--spacing-lg);border-bottom:1px solid var(--color-border)}.profile-menu-section h4{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.profile-menu-appointments-summary{display:flex;flex-direction:column;gap:var(--spacing-sm)}.appointments-stats{display:flex;flex-direction:column;gap:var(--spacing-xs);font-size:var(--font-size-xs)}.stat-item{color:var(--color-text-secondary)}.stat-item.stat-alert{color:var(--color-accent);font-weight:var(--font-weight-medium)}.appointments-list-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1500;padding:var(--spacing-base)}.profile-menu-actions{padding:var(--spacing-base) var(--spacing-lg)}.profile-menu-action-button{width:100%;padding:var(--spacing-sm) var(--spacing-base);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:6px;font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer;transition:all .2s}.profile-menu-action-button:hover{background-color:var(--color-border);border-color:var(--color-earth-medium)}@media(max-width:640px){.profile-menu-dropdown.mobile-sheet{position:fixed;inset:auto 0 0;width:100%;max-width:none;min-width:0;max-height:calc(100vh - 120px);border-radius:16px 16px 0 0;box-shadow:0 -12px 28px #00000038;animation:profileSheetUp .2s ease-out;padding-bottom:max(var(--spacing-base),env(safe-area-inset-bottom))}}@keyframes profileSheetUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.resource-list-item{display:flex;gap:var(--spacing-base);padding:var(--spacing-lg);background-color:var(--color-bg-primary);border:2px solid var(--color-border);border-radius:8px;cursor:pointer;transition:all .2s ease;position:relative}.resource-list-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--color-shadow);background-color:var(--color-bg-secondary)}.resource-list-item:active{transform:translateY(0);box-shadow:0 2px 4px var(--color-shadow)}.resource-list-item:focus{outline:3px solid var(--color-accent);outline-offset:2px}.resource-list-item.highlighted{border-color:var(--color-accent);border-width:3px;box-shadow:0 2px 8px #8b735533}.resource-list-item.mastery-recommended{background:linear-gradient(90deg,rgba(139,115,85,.1) 0%,var(--color-bg-primary) 40%);border-color:#8b735573}.resource-list-item.mastery-recommended:hover{border-color:var(--color-accent)}.list-item-content{flex:1;display:flex;flex-direction:column;gap:var(--spacing-sm)}.list-item-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-base);flex-wrap:wrap}.list-item-name{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:var(--line-height-tight);flex:1;min-width:200px}.list-item-badges{display:flex;gap:var(--spacing-sm);flex-wrap:wrap;align-items:center}.compatibility-badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-md);border-radius:12px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:#fff;white-space:nowrap}.element-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);border-radius:12px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:#fff;white-space:nowrap}.element-icon{font-size:var(--font-size-base)}.list-item-address{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal)}.list-item-intents{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.intent-tag{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:4px;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.list-item-description{margin-top:var(--spacing-xs)}.list-item-description p{margin:0;font-size:var(--font-size-base);color:var(--color-text-primary);line-height:var(--line-height-relaxed)}.expand-button{margin-top:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:none;border:none;color:var(--color-accent);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;text-decoration:underline;transition:color .2s ease}.expand-button:hover{color:var(--color-earth-dark)}.expand-button:focus{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:2px}.expanded-description{margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--color-border)}.list-item-actions{display:flex;flex-direction:column;gap:var(--spacing-sm);align-items:center;padding-left:var(--spacing-base);border-left:1px solid var(--color-border)}.action-button{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--color-border);border-radius:6px;cursor:pointer;font-size:var(--font-size-lg);transition:all .2s ease;padding:0}.action-button:hover{background-color:var(--color-bg-secondary);border-color:var(--color-accent);transform:scale(1.1)}.action-button:active{transform:scale(.95)}.action-button:focus{outline:2px solid var(--color-accent);outline-offset:2px}.favorite-button.active{border-color:var(--color-accent);background-color:#8b73551a}@media(max-width:640px){.resource-list-item{flex-direction:column;padding:var(--spacing-base)}.list-item-actions{flex-direction:row;border-left:none;border-top:1px solid var(--color-border);padding-left:0;padding-top:var(--spacing-base);justify-content:center}.list-item-header{flex-direction:column}.list-item-name{min-width:auto}}.list-pagination{display:flex;flex-direction:column;gap:var(--spacing-base);padding:var(--spacing-lg);background-color:var(--color-bg-secondary);border-top:1px solid var(--color-border)}.pagination-info{text-align:center;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.pagination-controls{display:flex;justify-content:center;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.pagination-button{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:6px;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);cursor:pointer;transition:all .2s ease}.pagination-button:hover:not(:disabled){background-color:var(--color-bg-secondary);border-color:var(--color-accent)}.pagination-button:disabled{opacity:.5;cursor:not-allowed}.pagination-button:focus{outline:2px solid var(--color-accent);outline-offset:2px}.pagination-numbers{display:flex;gap:var(--spacing-xs);align-items:center}.pagination-number{min-width:36px;height:36px;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:6px;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);cursor:pointer;transition:all .2s ease}.pagination-number:hover{background-color:var(--color-bg-secondary);border-color:var(--color-accent)}.pagination-number.active{background-color:var(--color-accent);color:#fff;border-color:var(--color-accent)}.pagination-number:focus{outline:2px solid var(--color-accent);outline-offset:2px}.pagination-ellipsis{padding:var(--spacing-xs) var(--spacing-sm);color:var(--color-text-secondary);font-size:var(--font-size-base)}@media(max-width:640px){.pagination-controls{gap:var(--spacing-xs)}.pagination-number{min-width:32px;height:32px;padding:var(--spacing-xs);font-size:var(--font-size-sm)}}.list-container{display:flex;flex-direction:column;height:100%;width:100%;background-color:var(--color-bg-secondary);overflow:hidden}.list-header{padding:var(--spacing-lg);background-color:var(--color-bg-primary);border-bottom:2px solid var(--color-border);position:sticky;top:0;z-index:10}.list-header-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-base)}.list-header-title{margin:0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.list-header-info{display:flex;flex-direction:column;align-items:flex-end;gap:var(--spacing-xs)}.list-header-filters{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.list-header-count{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.list-content{flex:1;overflow-y:auto;padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-base)}.list-empty-state{display:flex;align-items:center;justify-content:center;padding:var(--spacing-3xl);text-align:center}.list-empty-state p{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin:0}.zero-score-section{border-top:2px solid var(--color-border);background-color:var(--color-bg-primary)}.zero-score-toggle{width:100%;padding:var(--spacing-lg);display:flex;justify-content:space-between;align-items:center;background:none;border:none;cursor:pointer;transition:background-color .2s ease;text-align:left}.zero-score-toggle:hover{background-color:var(--color-bg-secondary)}.zero-score-toggle:focus{outline:2px solid var(--color-accent);outline-offset:-2px}.zero-score-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.zero-score-icon{font-size:var(--font-size-sm);color:var(--color-text-secondary);transition:transform .2s ease}.zero-score-list{padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-base);border-top:1px solid var(--color-border)}.list-skeleton{display:flex;flex-direction:column;gap:var(--spacing-base);padding:var(--spacing-lg)}.skeleton-item{height:200px;background:linear-gradient(90deg,var(--color-bg-primary) 0%,var(--color-bg-secondary) 50%,var(--color-bg-primary) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:8px;border:2px solid var(--color-border)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:640px){.list-header{padding:var(--spacing-base)}.list-header-content{flex-direction:column;align-items:flex-start}.list-header-info{align-items:flex-start}.list-content{padding:var(--spacing-base)}.list-header-title{font-size:var(--font-size-xl)}}.list-content::-webkit-scrollbar{width:8px}.list-content::-webkit-scrollbar-track{background:var(--color-bg-secondary)}.list-content::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.list-content::-webkit-scrollbar-thumb:hover{background:var(--color-earth-medium)}.post-survey-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:var(--spacing-base)}.post-survey-content{background-color:var(--color-bg-primary);border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0003}.post-survey-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.post-survey-header h2{margin:0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.post-survey-close-button{background:none;border:none;font-size:var(--font-size-2xl);color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-xs);line-height:1;transition:color .2s}.post-survey-close-button:hover{color:var(--color-text-primary)}.post-survey-appointment-info{padding:var(--spacing-base) var(--spacing-lg);background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.post-survey-appointment-info h3{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.post-survey-appointment-info p{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.post-survey-progress{padding:var(--spacing-base) var(--spacing-lg);border-bottom:1px solid var(--color-border)}.progress-bar{width:100%;height:6px;background-color:var(--color-bg-secondary);border-radius:3px;overflow:hidden;margin-bottom:var(--spacing-sm)}.progress-fill{height:100%;background-color:var(--color-accent);transition:width .3s ease}.progress-text{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.post-survey-body{padding:var(--spacing-lg)}.question-container{margin-bottom:var(--spacing-xl)}.question-text{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-lg);line-height:var(--line-height-relaxed)}.answer-options{display:flex;flex-direction:column;gap:var(--spacing-base)}.answer-option{display:flex;justify-content:center;align-items:center;padding:var(--spacing-base) var(--spacing-lg);background-color:var(--color-bg-primary);border:2px solid var(--color-border);border-radius:8px;cursor:pointer;transition:all .2s;text-align:center;font-size:var(--font-size-base);color:var(--color-text-primary)}.answer-option:hover,.answer-option.selected{border-color:var(--color-accent);background-color:var(--color-bg-secondary)}.rating-container{display:flex;justify-content:center;padding:var(--spacing-lg) 0}.text-input-container{margin-top:var(--spacing-base)}.text-input{width:100%;padding:var(--spacing-base);border:2px solid var(--color-border);border-radius:8px;font-size:var(--font-size-base);font-family:var(--font-primary);color:var(--color-text-primary);background-color:var(--color-bg-primary);resize:vertical;transition:border-color .2s}.text-input:focus{outline:none;border-color:var(--color-accent)}.error-message{display:block;margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:#d32f2f;text-align:center}.post-survey-actions{display:flex;gap:var(--spacing-base);align-items:center}.post-survey-actions .button-primary,.post-survey-actions .button-secondary{padding:var(--spacing-base) var(--spacing-lg);border-radius:8px;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s;border:none}.post-survey-actions .button-primary{background-color:var(--color-accent);color:#fff}.post-survey-actions .button-primary:hover:not(:disabled){background-color:var(--color-earth-dark)}.post-survey-actions .button-primary:disabled{opacity:.5;cursor:not-allowed}.post-survey-actions .button-secondary{background-color:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border)}.post-survey-actions .button-secondary:hover{background-color:var(--color-border)}.modal-overlay{position:fixed;inset:0;background-color:#2c2c2c80;z-index:2000;display:flex;align-items:center;justify-content:center;padding:var(--spacing-base);animation:fadeIn .2s ease}.modal-content{background-color:var(--color-bg-secondary);border-radius:12px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px var(--color-shadow);animation:slideUp .3s ease}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.modal-header h2{margin:0;font-size:var(--font-size-2xl);color:var(--color-text-primary)}.modal-close-button{width:36px;height:36px;border-radius:50%;background-color:var(--color-bg-primary);border:1px solid var(--color-border);font-size:24px;line-height:1;color:var(--color-text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;min-height:36px}.modal-close-button:hover{background-color:var(--color-earth-light);border-color:var(--color-earth-medium)}.suggest-form{padding:var(--spacing-lg)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-sm);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.required{color:var(--color-accent)}.form-group input,.form-group textarea{width:100%;padding:var(--spacing-sm) var(--spacing-base);font-size:var(--font-size-base);font-family:var(--font-primary);border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:border-color .2s ease}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-accent)}.form-group textarea{resize:vertical;min-height:100px}.error{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:#d32f2f}.error.warning{color:#ed6c02}.form-section{margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.form-section h3{margin:0 0 var(--spacing-lg) 0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.form-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--spacing-base)}.pillar-checkboxes{display:flex;flex-direction:column;gap:var(--spacing-sm)}.pillar-checkbox{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;padding:var(--spacing-sm);border-radius:8px;transition:background-color .2s ease}.pillar-checkbox:hover{background-color:var(--color-bg-primary)}.pillar-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;cursor:pointer;flex-shrink:0}.element-checkboxes{display:flex;flex-direction:column;gap:var(--spacing-sm)}.element-option{flex:1;min-width:0;align-items:flex-start}.element-option input[type=checkbox]{width:18px;height:18px;align-self:flex-start;margin-top:2px}.element-option{display:flex;align-items:center;gap:var(--spacing-xs);flex:1;min-width:0;line-height:normal}.element-option-icon{font-size:var(--font-size-base);flex-shrink:0;line-height:normal;display:inline-block;width:1em;text-align:center}.element-option-label{min-width:0}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-base);margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.button-primary,.button-secondary{padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border-radius:8px;cursor:pointer;transition:all .2s ease;min-height:44px}.button-primary{background-color:var(--color-accent);color:#fff;border:none}.button-primary:hover:not(:disabled){background-color:var(--color-earth-dark)}.button-primary:disabled{opacity:.6;cursor:not-allowed}.button-secondary{background-color:var(--color-bg-primary);color:var(--color-text-primary);border:1px solid var(--color-border)}.button-secondary:hover{background-color:var(--color-bg-secondary);border-color:var(--color-earth-medium)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:768px){.modal-overlay{padding:0;align-items:flex-end}.modal-content{max-width:100%;max-height:90vh;border-radius:16px 16px 0 0}.form-row{grid-template-columns:1fr}}.admin-review-panel{flex:1;min-height:0;width:100%;overflow-y:auto;overflow-x:hidden;background-color:var(--color-bg-primary);padding:var(--spacing-lg);padding-bottom:var(--spacing-3xl);box-sizing:border-box}.admin-review-panel::-webkit-scrollbar{width:10px}.admin-review-panel::-webkit-scrollbar-track{background:var(--color-bg-secondary);border-radius:5px}.admin-review-panel::-webkit-scrollbar-thumb{background:var(--color-earth-medium);border-radius:5px}.admin-review-panel::-webkit-scrollbar-thumb:hover{background:var(--color-earth-dark)}.admin-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center;padding:var(--spacing-3xl) var(--spacing-2xl)}.empty-icon{font-size:64px;color:var(--color-green-medium);margin-bottom:var(--spacing-lg)}.admin-empty-state h2{font-size:var(--font-size-2xl);color:var(--color-text-primary);margin:0 0 var(--spacing-base) 0}.admin-empty-state p{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.admin-content{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl);max-width:1600px;margin:0 auto;align-items:start}@media(max-width:1200px){.admin-content{grid-template-columns:1fr}}.suggestions-list h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-lg) 0}.suggestions-grid{display:flex;flex-direction:column;gap:var(--spacing-base)}.suggestion-card{background-color:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:8px;padding:var(--spacing-lg);cursor:pointer;transition:all .2s ease}.suggestion-card:hover{border-color:var(--color-accent);box-shadow:0 4px 12px var(--color-shadow);transform:translateY(-2px)}.suggestion-card.selected{border-color:var(--color-accent);background-color:#fff;box-shadow:0 4px 12px var(--color-shadow)}.suggestion-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-base);gap:var(--spacing-base)}.suggestion-header-right{display:flex;flex-direction:column;align-items:flex-end;gap:var(--spacing-xs)}.suggestion-rating{display:flex;align-items:center}.suggestion-card-header h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0;flex:1}.suggestion-date{font-size:var(--font-size-sm);color:var(--color-text-secondary);white-space:nowrap;margin-left:var(--spacing-base)}.suggestion-description{font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin:0 0 var(--spacing-base) 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.suggestion-pillars,.suggestion-location{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:var(--spacing-sm) 0}.suggestion-pillars strong,.suggestion-location strong{color:var(--color-text-primary)}.suggestion-detail{background-color:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:8px;padding:var(--spacing-xl);display:flex;flex-direction:column;box-sizing:border-box}.suggestion-detail .detail-content{flex:1;padding-bottom:var(--spacing-base)}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:2px solid var(--color-border)}.detail-header h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0;flex:1}.detail-close{background:none;border:none;font-size:32px;color:var(--color-text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;line-height:1;transition:color .2s ease}.detail-close:hover{color:var(--color-text-primary)}.detail-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.detail-section{padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.detail-section:last-of-type{border-bottom:none}.detail-section h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-base) 0}.detail-section p{font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin:0}.detail-section a{color:var(--color-accent);text-decoration:none}.detail-section a:hover{text-decoration:underline}.coordinates{font-size:var(--font-size-sm);font-family:monospace;color:var(--color-text-secondary);margin-top:var(--spacing-sm)}.pillar-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.pillar-tag{background-color:var(--color-earth-light);color:var(--color-text-primary);padding:var(--spacing-xs) var(--spacing-base);border-radius:4px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.tag-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.tag{background-color:var(--color-green-light);color:var(--color-text-primary);padding:var(--spacing-xs) var(--spacing-base);border-radius:4px;font-size:var(--font-size-sm)}.detail-actions{display:flex;gap:var(--spacing-base);margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);padding-bottom:var(--spacing-base);margin-bottom:var(--spacing-base);border-top:2px solid var(--color-border);flex-shrink:0;background-color:var(--color-bg-secondary)}.suggestion-detail-empty{display:flex;align-items:center;justify-content:center}.detail-actions button{flex:1;padding:var(--spacing-base) var(--spacing-lg);border:none;border-radius:6px;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .2s ease}.detail-actions button:disabled{opacity:.6;cursor:not-allowed}.button-confirm{background-color:var(--color-green-medium);color:#fff;font-weight:var(--font-weight-semibold);border:2px solid var(--color-green-dark);min-height:48px;font-size:var(--font-size-base)}.button-confirm:hover:not(:disabled){background-color:var(--color-green-dark);transform:translateY(-1px);box-shadow:0 4px 12px #6b7a5f4d}.button-confirm:active:not(:disabled){transform:translateY(0)}.button-reject{background-color:var(--color-bg-secondary);color:var(--color-text-primary);border:2px solid var(--color-border)}.button-reject:hover:not(:disabled){background-color:var(--color-bg-primary);border-color:var(--color-text-secondary)}.rating-section{background-color:var(--color-bg-primary);padding:var(--spacing-lg);border-radius:8px;border:2px solid var(--color-green-light)}.rating-control{display:flex;flex-direction:column;gap:var(--spacing-base)}.rating-note{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;line-height:var(--line-height-relaxed)}.rating-date{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.suggestions-page{min-height:100vh;display:flex;flex-direction:column;background-color:var(--color-bg-primary)}.suggestions-header{background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);padding:var(--spacing-lg);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);flex-wrap:wrap}.suggestions-header>div:first-child{flex:1;min-width:200px}.back-link{display:inline-block;margin-bottom:var(--spacing-sm);color:var(--color-text-secondary);text-decoration:none;font-size:var(--font-size-sm);transition:color .2s ease}.back-link:hover{color:var(--color-accent);text-decoration:underline}.suggestions-header h1{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.suggestions-header p{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-base)}.suggestions-main{flex:1;overflow:auto}.suggestions-content{max-width:100%;height:100%}.suggest-button{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-accent);color:#fff;border:none;border-radius:6px;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .2s ease;white-space:nowrap}.suggest-button:hover{background-color:var(--color-accent-dark, #0056b3);transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.suggest-button:active{transform:translateY(0)}@media(max-width:768px){.suggestions-header{flex-direction:column;align-items:stretch}.suggest-button{width:100%}}.mastery-page{min-height:100vh;background:var(--color-bg-secondary)}.mastery-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);background:var(--color-bg-primary)}.mastery-header h1{margin:var(--spacing-xs) 0 0 0}.mastery-subtitle{margin:var(--spacing-xs) 0 0 0;color:var(--color-text-secondary);max-width:60ch}.mastery-actions{display:flex;align-items:center;justify-content:flex-end;min-width:220px}.mastery-reset{border:1px solid var(--color-border);background:var(--color-bg-secondary);padding:var(--spacing-sm) var(--spacing-base);border-radius:10px;cursor:pointer;color:var(--color-text-primary)}.mastery-reset:hover{border-color:var(--color-accent)}.mastery-reset.danger{border-color:#a05a3c73;background:#a05a3c14}.mastery-reset-confirm{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;justify-content:flex-end;color:var(--color-text-secondary)}.mastery-main{padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-xl)}.mastery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-lg)}.mastery-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:14px;padding:var(--spacing-lg)}.mastery-card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-base)}.mastery-element{display:inline-flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.mastery-icon{font-size:18px}.mastery-level{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.mastery-xp-row{display:flex;justify-content:space-between;gap:var(--spacing-base);margin-top:var(--spacing-base);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.mastery-progress{display:flex;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.mastery-progress-track{flex:1;height:12px;border-radius:999px;background:var(--color-bg-secondary);border:1px solid var(--color-border);overflow:hidden}.mastery-progress-fill{height:100%;border-radius:999px;transition:width .22s ease}.mastery-progress-pct{width:44px;text-align:right;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.mastery-history h2{margin:0 0 var(--spacing-base) 0}.muted{color:var(--color-text-secondary);margin:0}.visit-list{list-style:none;padding:0;margin:0;display:grid;gap:var(--spacing-sm)}.visit-item{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:14px;padding:var(--spacing-base);display:flex;justify-content:space-between;gap:var(--spacing-base);flex-wrap:wrap}.visit-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.visit-meta{margin-top:4px;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.visit-elements{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);justify-content:flex-end}.visit-element-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:var(--font-size-sm)}.visit-xp{margin-top:var(--spacing-xs);color:var(--color-text-secondary);text-align:right;font-size:var(--font-size-sm)}@media(max-width:768px){.mastery-grid{grid-template-columns:1fr}}
