:root{--color-primary: #c97b63;--color-secondary: #e8b4b8;--color-background: #faf3ec;--color-surface: #ffffff;--color-text: #2e2a27;--color-text-muted: #6f6660;--color-success: #8a9a5b;--color-danger: #b3483f;--color-border: #e4d7cb;--font-heading: "Playfair Display", Georgia, serif;--font-body: "Inter", system-ui, sans-serif;--font-size-base: 16px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius: 8px;--radius-control: 10px;--radius-card: 16px;--radius-pill: 999px;--shadow-card: 0 1px 3px rgba(46, 42, 39, .06), 0 8px 20px rgba(46, 42, 39, .07);--shadow-card-hover: 0 2px 6px rgba(46, 42, 39, .08), 0 12px 28px rgba(46, 42, 39, .1);--shadow-button: 0 2px 6px rgba(201, 123, 99, .35);--shadow-button-hover: 0 4px 12px rgba(201, 123, 99, .4);--focus-ring: 0 0 0 3px rgba(201, 123, 99, .18);--ease-standard: cubic-bezier(.4, 0, .2, 1);--duration-fast: .12s;--duration-base: .18s}*{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}.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:360px;margin:var(--space-12) auto;padding:var(--space-6);text-align:center}.auth-page form{display:flex;flex-direction:column;gap:var(--space-4);text-align:start;margin-top:var(--space-6)}.auth-page label{display:flex;flex-direction:column;gap:var(--space-1);font-size:.9rem;color:var(--color-text-muted)}.auth-page .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:0 auto;padding:var(--space-6);line-height:1.6}.legal-page-nav{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4)}.legal-page-nav a{color:var(--color-primary);font-size:.9rem}.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)}.language-switcher{padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);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-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{display:flex;flex-direction:column;gap:var(--space-1);font-size:.9rem;color:var(--color-text-muted)}.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)}.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-banner{color:var(--color-text-muted);font-size:.85rem;margin:0 0 var(--space-6);display:flex;align-items:center;gap:var(--space-3)}.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)}.gallery-switcher select{padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:.9rem}.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)}.subscription-manager [role=alert]{font-size:.8rem}.idea-card .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)}.date-plan{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.date-plan h3{font-size:.95rem;margin-bottom:var(--space-2)}.date-plan .essay{white-space:pre-wrap;line-height:1.5}.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)}
