:root{--clr-paper-50: #fbf8f2;--clr-paper-100: #f7f3eb;--clr-paper-200: #e5dfd1;--clr-white: #ffffff;--clr-ink-900: #211d17;--clr-ink-600: #6b6355;--clr-ink-400: #93897a;--clr-ember-100: #f3dbcb;--clr-ember-600: #b4552f;--clr-ember-700: #963f1d;--clr-dusk-600: #3d5a73;--clr-red-100: #f9dedc;--clr-red-600: #b3261e;--clr-green-600: #3a6b4c;--surface-ground: var(--clr-paper-100);--surface-raised: var(--clr-white);--surface-sunken: var(--clr-paper-50);--border-default: var(--clr-paper-200);--border-strong: var(--clr-ink-400);--text-strong: var(--clr-ink-900);--text-muted: var(--clr-ink-600);--text-faint: var(--clr-ink-400);--text-on-ember: var(--clr-paper-50);--accent-primary: var(--clr-ember-600);--accent-primary-hover: var(--clr-ember-700);--accent-soft: var(--clr-ember-100);--accent-secondary: var(--clr-dusk-600);--state-now: var(--clr-ember-600);--state-error: var(--clr-red-600);--state-error-soft: var(--clr-red-100);--state-success: var(--clr-green-600);--font-brand: "Space Grotesk", system-ui, sans-serif;--font-display: "Archivo", system-ui, sans-serif;--font-body: "Archivo", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--font-size-base: 16px;--text-2xl: 26px;--text-xl: 20px;--text-lg: 16px;--text-md: 14px;--text-sm: 12px;--text-xs: 11px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius: 8px;--radius-surface: 8px;--radius-control: 6px;--radius-pill: 999px;--radius-dot: 50%;--shadow-card: 0 1px 2px rgba(33, 29, 23, .06), 0 6px 16px rgba(33, 29, 23, .06);--shadow-card-hover: 0 2px 4px rgba(33, 29, 23, .08), 0 10px 24px rgba(33, 29, 23, .09);--shadow-button: 0 2px 6px rgba(180, 85, 47, .24);--shadow-button-hover: 0 4px 12px rgba(180, 85, 47, .3);--focus-ring: 0 0 0 3px rgba(61, 90, 115, .28);--ease-standard: cubic-bezier(.2, .8, .2, 1);--ease-exit: cubic-bezier(.4, 0, 1, 1);--duration-fast: .12s;--duration-base: .2s;--color-primary: var(--accent-primary);--color-secondary: var(--accent-soft);--color-background: var(--surface-ground);--color-surface: var(--surface-raised);--color-text: var(--text-strong);--color-text-muted: var(--text-muted);--color-success: var(--state-success);--color-danger: var(--state-error);--color-border: var(--border-default);--font-heading: var(--font-display);--radius-card: var(--radius-surface)}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-background)}h1,h2,h3{font-family:var(--font-heading);color:var(--color-text);margin:0 0 var(--space-4)}#root{min-height:100vh}[role=alert]{color:var(--color-danger);font-size:.9rem}a{color:var(--accent-primary)}a:hover{color:var(--accent-primary-hover)}.auth-page input,.log-idea input,.log-idea textarea,.rating-form textarea{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);font-family:inherit;font-size:1rem;resize:vertical;transition:border-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard)}.auth-page input:focus-visible,.log-idea input:focus-visible,.log-idea textarea:focus-visible,.rating-form textarea:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-control);font-family:inherit;font-size:.95rem;font-weight:600;line-height:1.2;cursor:pointer;text-decoration:none;transition:transform var(--duration-fast) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard),background-color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard)}.btn:disabled{opacity:.6;cursor:default;transform:none}.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:.8rem}.btn-primary{background:var(--color-primary);color:var(--color-surface);box-shadow:var(--shadow-button)}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-button-hover)}.btn-primary:active:not(:disabled){transform:scale(.97);box-shadow:var(--shadow-button)}.btn-secondary{background:transparent;border:1px solid var(--color-primary);color:var(--color-primary)}.btn-secondary:hover:not(:disabled){background:var(--color-secondary);transform:translateY(-1px)}.btn-secondary:active:not(:disabled){transform:scale(.97)}.btn-danger{background:transparent;border:1px solid var(--color-danger);color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:#b3483f14;transform:translateY(-1px)}.btn-danger:active:not(:disabled){transform:scale(.97)}.auth-page{max-width:400px;margin:var(--space-12) auto;padding:0 var(--space-4)}.auth-brand{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-6);font-family:var(--font-brand);font-size:1.2rem;font-weight:700;letter-spacing:-.01em;color:var(--text-strong)}.auth-card{background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-surface);box-shadow:var(--shadow-card);padding:var(--space-8) var(--space-6);text-align:center}.auth-card form{display:flex;flex-direction:column;gap:var(--space-4);text-align:start;margin-top:var(--space-6)}.auth-card label{display:flex;flex-direction:column;gap:var(--space-1);font-size:.9rem;color:var(--color-text-muted)}.auth-card .field-hint{margin-top:calc(-1 * var(--space-2));color:var(--color-text-muted);font-size:.8rem}.auth-page-lang{display:flex;justify-content:flex-end;margin-bottom:var(--space-4)}.legal-consent{font-size:.8rem;color:var(--color-text-muted)}.legal-consent a{color:var(--color-primary)}.legal-page{max-width:680px;margin:var(--space-12) auto;padding:0 var(--space-4);line-height:1.6}.legal-card{background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-surface);box-shadow:var(--shadow-card);padding:var(--space-8) var(--space-6)}.page-nav-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4)}.page-nav-row a,.page-nav-row button.link-button{color:var(--color-primary);font-size:.9rem}.link-button{background:none;border:none;padding:0;font:inherit;cursor:pointer}.legal-placeholder-notice{background:var(--color-secondary);color:var(--color-text);padding:var(--space-3) var(--space-4);border-radius:var(--radius);font-size:.9rem;font-weight:600;margin-bottom:var(--space-6)}.legal-meta{color:var(--color-text-muted);font-size:.85rem;margin-bottom:var(--space-6)}.legal-page h2{font-size:1.1rem;margin-top:var(--space-8)}.legal-page h3{font-size:.95rem;margin-top:var(--space-6)}.select-control{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding:var(--space-2) var(--space-3);padding-inline-end:calc(var(--space-3) + 20px);border:1px solid var(--color-border);border-radius:var(--radius-control);background-color:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:.9rem;font-weight:500;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23B4552F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;transition:border-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard),background-color var(--duration-base) var(--ease-standard)}[dir=rtl] .select-control{background-position:left var(--space-3) center}.select-control:hover{border-color:var(--color-primary)}.select-control:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.select-control-sm{padding:var(--space-1) var(--space-2);padding-inline-end:calc(var(--space-2) + 20px);font-size:.85rem}.gallery-page{max-width:640px;margin:0 auto;padding:var(--space-6)}.app-header{margin-bottom:var(--space-8)}.app-header-top{display:flex;align-items:center;justify-content:space-between}.app-header-top div{display:flex;align-items:center;gap:var(--space-3);font-size:.9rem;color:var(--color-text-muted)}.app-brand{display:flex;align-items:center;gap:var(--space-2);text-decoration:none}.app-brand h1{margin:0;font-family:var(--font-brand);font-size:1.15rem;font-weight:700;letter-spacing:-.01em}.app-nav{display:flex;gap:var(--space-4);margin-top:var(--space-3)}.app-nav a{color:var(--color-text-muted);text-decoration:none;font-size:.9rem;padding-bottom:var(--space-1);border-bottom:2px solid transparent}.app-nav a.active{color:var(--color-text);border-bottom-color:var(--color-primary);font-weight:600}.log-idea form{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-8)}.log-idea label,.field-group{display:flex;flex-direction:column;gap:var(--space-1);font-size:.9rem;color:var(--color-text-muted)}.chip-field{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-control);transition:border-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard)}.chip-field:focus-within{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-primary-hover);font-size:.85rem;font-weight:600;white-space:nowrap}.chip button{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;background:none;color:inherit;font-size:1rem;line-height:1;cursor:pointer;border-radius:50%;transition:background-color var(--duration-base) var(--ease-standard)}.chip button:hover{background:#2e2a271a}.chip-field input{flex:1 1 80px;min-width:80px;border:none;background:none;padding:var(--space-1) var(--space-2);font:inherit;font-size:1rem;color:var(--color-text);border-radius:0}.chip-field input:focus,.chip-field input:focus-visible{outline:none;border:none;box-shadow:none}.save-confirmation{color:var(--color-success);font-size:.9rem}.save-confirmation a{color:var(--color-primary)}.gallery-list ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-4)}.empty-state{text-align:center;padding:var(--space-8) var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-card)}.empty-state h3{margin:0 0 var(--space-2);font-size:1.1rem}.empty-state p{margin:0 0 var(--space-4);color:var(--color-text-muted);font-size:.95rem}.empty-state .btn{width:auto;display:inline-flex}.error-banner{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);background:var(--state-error-soft);border:1px solid var(--state-error);border-radius:var(--radius-control)}.error-banner svg{flex:none;width:18px;height:18px;margin-top:2px;color:var(--state-error)}.error-banner-message{margin:0;font-size:.9rem;color:var(--color-text)}.error-banner-retry{margin-top:var(--space-2);background:none;border:none;padding:0;font:inherit;font-weight:600;font-size:.85rem;color:var(--state-error);cursor:pointer;text-decoration:underline}.error-banner-retry:disabled{opacity:.6;cursor:default}.idea-card{position:relative;overflow:hidden;padding:var(--space-4);padding-inline-start:calc(var(--space-4) + var(--space-2));border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);transition:box-shadow var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard)}.idea-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.idea-card:before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:4px;background:var(--color-secondary)}.idea-card.status-planned:before{background:var(--color-primary)}.idea-card.status-rated:before{background:var(--color-success)}.idea-text{margin:0;font-size:1rem;font-weight:500;line-height:1.4}.idea-meta{color:var(--color-text-muted);font-size:.85rem;margin:var(--space-1) 0 0}.idea-card-meta{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px dashed var(--color-border);display:flex;flex-direction:column;gap:var(--space-1)}.idea-card-meta .idea-meta{margin:0}.idea-status-label{display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-2)}.idea-card.status-planned .idea-status-label{color:var(--color-primary)}.idea-card.status-rated .idea-status-label{color:var(--color-success)}.quota-panel{margin:0 0 var(--space-6)}.quota-row{color:var(--color-text-muted);font-size:.85rem;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}.quota-bar{height:4px;border-radius:var(--radius-pill);background:var(--color-border);overflow:hidden}.quota-bar div{height:100%;background:var(--accent-secondary);border-radius:inherit;transition:width var(--duration-base) var(--ease-standard)}.gallery-switcher{margin-bottom:var(--space-6)}.gallery-switcher label{display:flex;align-items:center;gap:var(--space-3);font-size:.85rem;color:var(--color-text-muted)}.upgrade-button-wrap{display:inline-flex;align-items:center;gap:var(--space-2)}.upgrade-button-wrap [role=alert]{font-size:.8rem}.subscription-manager{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text-muted);font-size:.85rem;margin:0 0 var(--space-6)}.disconnect-button{margin-top:var(--space-3)}.invite-link-box{display:flex;align-items:stretch;margin-top:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);overflow:hidden;transition:border-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard)}.invite-link-box:focus-within{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.invite-link-box input{flex:1;min-width:0;border:none;background:transparent;padding:var(--space-2) var(--space-3);font-family:inherit;font-size:.85rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invite-link-box input:focus{outline:none;color:var(--color-text)}.invite-link-copy{display:inline-flex;align-items:center;gap:var(--space-1);flex-shrink:0;padding:var(--space-2) var(--space-3);border:none;border-inline-start:1px solid var(--color-border);background:var(--color-surface);color:var(--color-primary);font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer;transition:background-color var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard)}.invite-link-copy svg{width:15px;height:15px;flex-shrink:0}.invite-link-copy:hover:not(.invite-link-copy-done){background:var(--color-secondary)}.invite-link-copy:focus-visible{outline:none;box-shadow:var(--focus-ring)}.invite-link-copy:active{transform:scale(.97)}.invite-link-copy-done{background:var(--color-success);color:var(--color-surface);animation:pill-pop var(--duration-base) var(--ease-standard)}.subscription-manager [role=alert]{font-size:.8rem}.idea-card .btn{margin-top:var(--space-3)}.idea-card-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.idea-card-actions .btn{margin-top:var(--space-3)}.idea-card [role=alert]{font-size:.85rem;margin-top:var(--space-2)}.back-link{display:inline-block;margin-bottom:var(--space-4);color:var(--color-primary);font-size:.9rem;text-decoration:none}.back-link:hover{text-decoration:underline}.idea-detail{max-width:640px}.idea-detail:hover{transform:none;box-shadow:var(--shadow-card)}.plan-ticket{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.plan-kicker{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-primary)}.plan-serial{background:none;border:none;padding:0;font:inherit;font-family:var(--font-mono);letter-spacing:inherit;color:var(--text-faint);cursor:pointer;transition:color var(--duration-base) var(--ease-standard)}.plan-serial:hover{color:var(--accent-primary)}.plan-serial:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:2px}.plan-essay{white-space:pre-wrap;line-height:1.5;margin:var(--space-3) 0 0}.plan-perforation{height:14px;margin:var(--space-4) 0;background-image:radial-gradient(circle at 7px 7px,var(--color-background) 4px,transparent 4.5px);background-size:16px 16px;background-repeat:repeat-x}.plan-route{list-style:none;padding:0;margin:0;position:relative}.plan-route:before{content:"";position:absolute;inset-inline-start:5px;top:6px;bottom:22px;width:1px;background:var(--color-border)}.plan-stop{position:relative;display:grid;grid-template-columns:var(--space-4) 1fr;gap:var(--space-3);padding-bottom:var(--space-4)}.plan-stop-marker{width:10px;height:10px;margin-top:4px;border-radius:var(--radius-dot);border:1.5px solid var(--text-faint);background:var(--surface-raised)}.plan-stop-name{margin:0;font-weight:600;font-size:1rem}.plan-stop-detail{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:.9rem;line-height:1.5}.plan-footer{padding-top:var(--space-3);border-top:1px dashed var(--color-border);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em}.plan-actions{display:flex;justify-content:flex-end;align-items:center;gap:var(--space-3);margin-top:var(--space-3)}.rating-form,.rating-display{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.rating-form h3,.rating-display h3{font-size:.95rem;margin-bottom:var(--space-2)}.yes-no-question{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.yes-no-question-label{font-size:.95rem}.pill-pair{display:flex;gap:var(--space-2)}.pill-pair .pill-option{margin:0;padding:var(--space-1) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text);font-size:.85rem;font-weight:600;cursor:pointer;transition:background-color var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}.pill-pair .pill-option:hover{border-color:var(--color-primary)}.pill-pair .pill-option:focus-visible{outline:none;box-shadow:var(--focus-ring)}.pill-pair .pill-option:active{transform:scale(.96)}.pill-pair .pill-option-selected{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-surface);animation:pill-pop var(--duration-base) var(--ease-standard)}@keyframes pill-pop{0%{transform:scale(1)}50%{transform:scale(1.06)}to{transform:scale(1)}}.rating-answers{list-style:none;padding:0;margin:0 0 var(--space-2);display:flex;flex-direction:column;gap:var(--space-1);font-size:.95rem}.rating-form textarea{display:block;width:100%;margin-bottom:var(--space-3)}
