@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg:#f7f3eb;--surface:#fcf9f2;--surface-2:#faf6ef;--surface-3:#f0ebe0;--text-primary:#2c2416;--text-secondary:#6b5d4a;--text-tertiary:#9c8e7a;--text-muted:#c0b6a8;--accent:#b8860b;--accent-hover:#9a7209;--accent-text:#fff;--accent-soft:#fdf3d0;--purple:#7c5cfc;--purple-soft:#ede9fe;--success:#16a34a;--success-soft:#dcfce7;--warning:#d97706;--warning-soft:#fef3c7;--danger:#dc2626;--danger-soft:#fee2e2;--border:#2c241614;--border-strong:#2c241626;--overlay:#2c241666;--hero-overlay:linear-gradient(to bottom, #f7f3eb4d 0%, #f0ebe099 100%);--step-overlay:linear-gradient(to bottom, #f7f3eb80 0%, #f0ebe0bf 100%);--font-primary:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-display:2.25rem;--text-heading:1.5rem;--text-subheading:1.25rem;--text-body:1rem;--text-body-bold:1rem;--text-small:.875rem;--text-small-bold:.875rem;--text-caption:.8125rem;--text-micro:.75rem;--text-tiny:.6875rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--radius-round:50%;--shadow-sm:0 1px 2px #2c24160f;--shadow-md:0 4px 12px #2c241614;--shadow-lg:0 8px 24px #2c24161a;--shadow-xl:0 16px 48px #2c24161f;--duration-instant:.1s;--duration-fast:.2s;--duration-normal:.3s;--duration-slow:.5s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--btn-primary-bg:var(--accent);--btn-primary-text:var(--accent-text);--btn-primary-hover:var(--accent-hover);--btn-primary-radius:var(--radius-sm);--btn-primary-padding:.75rem 1.5rem;--btn-primary-font:600 1rem var(--font-primary);--btn-ghost-bg:transparent;--btn-ghost-text:var(--text-secondary);--btn-ghost-border:var(--border-strong);--btn-ghost-radius:var(--radius-sm);--btn-ghost-padding:.75rem 1.5rem;--btn-disabled-opacity:.4;--input-bg:var(--surface);--input-text:var(--text-primary);--input-placeholder:var(--text-tertiary);--input-border:var(--border-strong);--input-focus:var(--accent);--input-radius:var(--radius-sm);--input-padding:.75rem 1rem;--card-bg:var(--surface);--card-border:var(--border);--card-radius:var(--radius-md);--card-padding:1rem;--modal-bg:var(--surface-2);--modal-border:var(--border);--modal-radius:var(--radius-lg);--modal-padding:1.5rem;--status-bar-bg:transparent;--status-height:44px;--status-text:var(--text-tertiary);--sidebar-width:240px;--bottom-nav-height:60px;--mobile-header-height:52px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]),:root[data-theme=dark]{--bg:#0f0d0a;--surface:#1a1712;--surface-2:#231f19;--surface-3:#2e2922;--text-primary:#f0ece0;--text-secondary:#b5a897;--text-tertiary:#7a6f5e;--text-muted:#4d453b;--accent:#f5c542;--accent-hover:#fdd835;--accent-text:#1a1712;--accent-soft:#2a2419;--purple:#a78bfa;--purple-soft:#1e1b2e;--success:#22c55e;--success-soft:#13261a;--warning:#fbbf24;--warning-soft:#2a2419;--danger:#ef4444;--danger-soft:#2a1414;--border:#f0ece00f;--border-strong:#f0ece01f;--overlay:#0009;--hero-overlay:linear-gradient(to bottom, #120a06b3 0%, #120a06d9 100%);--step-overlay:linear-gradient(to bottom, #120e0a80 0%, #0f0c08a6 100%);--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 24px #00000080;--shadow-xl:0 16px 48px #0009;--sidebar-bg:#1a1712;--sidebar-link-hover:#f0ece00a;--sidebar-link-active:#f5c54214;--bottom-nav-bg:#0f0d0aeb;--mobile-header-bg:#0f0d0aeb}}:root[data-theme=light]{--bg:#f7f3eb;--surface:#fcf9f2;--surface-2:#faf6ef;--surface-3:#f0ebe0;--text-primary:#2c2416;--text-secondary:#6b5d4a;--text-tertiary:#9c8e7a;--text-muted:#c0b6a8;--accent:#b8860b;--accent-hover:#9a7209;--accent-text:#fff;--accent-soft:#fdf3d0;--purple:#7c5cfc;--purple-soft:#ede9fe;--success:#16a34a;--success-soft:#dcfce7;--warning:#d97706;--warning-soft:#fef3c7;--danger:#dc2626;--danger-soft:#fee2e2;--border:#2c241614;--border-strong:#2c241626;--overlay:#2c241666;--hero-overlay:linear-gradient(to bottom, #f7f3eb4d 0%, #f0ebe099 100%);--step-overlay:linear-gradient(to bottom, #f7f3eb80 0%, #f0ebe0bf 100%);--shadow-sm:0 1px 2px #2c24160f;--shadow-md:0 4px 12px #2c241614;--shadow-lg:0 8px 24px #2c24161a;--shadow-xl:0 16px 48px #2c24161f;--sidebar-bg:#f0ebe0;--sidebar-link-hover:#2c24160a;--sidebar-link-active:#b8860b14;--bottom-nav-bg:#ffffffd9;--mobile-header-bg:#ffffffe6}body{font-family:var(--font-primary);font-size:var(--text-body);color:var(--text-primary);background-color:var(--bg);min-height:100dvh;transition:background-color var(--duration-normal) var(--ease-in-out), color var(--duration-normal) var(--ease-in-out);line-height:1.5}h1,h2,h3,h4,h5,h6{font-family:var(--font-primary);color:var(--text-primary);font-weight:600;line-height:1.25}.display-text{font-size:var(--text-display);letter-spacing:-.72px;font-weight:600;line-height:1.1}.heading-text{font-size:var(--text-heading);letter-spacing:-.36px;font-weight:600;line-height:1.25}.subheading-text{font-size:var(--text-subheading);letter-spacing:-.24px;font-weight:600;line-height:1.3}.body-text{font-size:var(--text-body);font-weight:400;line-height:1.5}.body-text-bold{font-size:var(--text-body-bold);font-weight:600;line-height:1.5}.small-text{font-size:var(--text-small);letter-spacing:-.14px;font-weight:400;line-height:1.45}.small-text-bold{font-size:var(--text-small-bold);letter-spacing:-.14px;font-weight:600;line-height:1.45}.caption-text{font-size:var(--text-caption);letter-spacing:-.08px;font-weight:400;line-height:1.4}.micro-text{font-size:var(--text-micro);font-weight:500;line-height:1.35}.tiny-text{font-size:var(--text-tiny);letter-spacing:.05em;text-transform:uppercase;font-weight:500;line-height:1.3}.btn{justify-content:center;align-items:center;gap:var(--space-2);font:var(--btn-primary-font);padding:var(--btn-primary-padding);border-radius:var(--btn-primary-radius);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), transform var(--duration-instant) var(--ease-out), opacity var(--duration-fast) var(--ease-out);white-space:nowrap;border:none;min-height:44px;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.96)}.btn:disabled{opacity:var(--btn-disabled-opacity);cursor:not-allowed;transform:none}.btn-primary{background-color:var(--btn-primary-bg);color:var(--btn-primary-text)}.btn-primary:hover:not(:disabled){background-color:var(--btn-primary-hover)}.btn-ghost{background-color:var(--btn-ghost-bg);color:var(--btn-ghost-text);border:1px solid var(--btn-ghost-border)}.btn-ghost:hover:not(:disabled){background-color:var(--surface-2)}.input{width:100%;padding:var(--input-padding);font-family:var(--font-primary);font-size:var(--text-body);color:var(--input-text);background-color:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--input-radius);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);outline:none;min-height:44px;display:block}.input::placeholder{color:var(--input-placeholder)}.input:focus{border-color:var(--input-focus);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent)}.input-textarea{resize:vertical;min-height:120px}.card{background-color:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);padding:var(--card-padding)}.badge{align-items:center;gap:var(--space-1);border-radius:var(--radius-full);font-size:var(--text-micro);padding:2px 8px;font-weight:500;line-height:1.35;display:inline-flex}.badge-success{background-color:var(--success-soft);color:var(--success)}.badge-warning{background-color:var(--warning-soft);color:var(--warning)}.badge-danger{background-color:var(--danger-soft);color:var(--danger)}.badge-accent{background-color:var(--accent-soft);color:var(--accent)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:18px}body{background-color:var(--bg);min-height:100dvh;color:var(--text-primary);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:1rem;line-height:1.5;display:flex}#root{width:100%;max-width:none;min-height:100dvh;display:flex}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-topbar{background:var(--mobile-header-bg);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);z-index:40;flex-shrink:0;justify-content:space-between;align-items:center;height:56px;padding:0 20px;transition:background .3s;display:flex;position:sticky;top:0}.topbar-brand{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.topbar-icon{color:var(--accent);font-size:20px}.topbar-name{color:var(--accent);font-size:16px;font-weight:700}.topbar-nav{align-items:center;gap:8px;display:flex}.topbar-link{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;min-height:36px;padding:6px 12px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s}.topbar-link:hover{color:var(--text-primary);background:var(--sidebar-link-hover)}.topbar-link.active{color:var(--accent);font-weight:600}.topbar-theme-btn{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:6px 8px;font-family:inherit;font-size:18px;transition:background .15s;display:flex}.topbar-theme-btn:hover{background:var(--sidebar-link-hover)}.app-main{flex:1;transition:background .3s;position:relative;overflow:hidden auto}.app-main::-webkit-scrollbar{width:4px}.app-main::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.screen{gap:var(--space-6);flex-direction:column;flex:1;width:100%;max-width:none;display:flex}@media (width>=768px){:is(.apology-letters-screen,.apology-dashboard-screen,.screen:has(.apology-plans-list),.screen:has(.success-content)){max-width:700px;margin-left:auto;margin-right:auto;padding-left:20px;padding-right:20px}}.landing-screen{background-image:url(/images/hero-bg.png);background-position:50%;background-size:cover;justify-content:center;align-items:center;min-height:calc(100vh - 56px);padding:40px 20px 60px;position:relative}[data-theme=light] .landing-screen{background:linear-gradient(#f7f3eb 0%,#f0ebe0 50%,#e8e0d0 100%)}.landing-screen:before{content:"";background:var(--hero-overlay);pointer-events:none;z-index:0;position:absolute;inset:0}.landing-content{align-items:center;gap:var(--space-8);z-index:1;flex-direction:column;width:100%;display:flex;position:relative}.landing-hero{text-align:center;align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.landing-icon{color:var(--accent);background-image:url(/images/cross-glow.png);background-position:50%;background-repeat:no-repeat;background-size:contain;justify-content:center;align-items:center;width:100px;height:100px;font-size:3rem;display:inline-flex;position:relative}.topbar-icon{color:var(--accent);background-image:url(/images/cross-glow.png);background-position:50%;background-repeat:no-repeat;background-size:contain;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;display:inline-flex}[data-theme=light] .topbar-icon,[data-theme=light] .landing-icon{background-image:none}.landing-title{color:var(--accent);font-size:2rem;line-height:1.2}.landing-subtitle{color:var(--text-secondary)}.landing-card{gap:var(--space-4);padding:var(--space-6);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);flex-direction:column;width:100%;transition:border-color .2s;display:flex}.landing-card:hover{border-color:var(--accent)}.landing-card-icon{text-align:center;font-size:2rem}.landing-card-desc{color:var(--text-secondary)}.landing-features{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.landing-features li{color:var(--text-secondary);line-height:1.4}.landing-cta{margin-top:var(--space-2)}.landing-note{text-align:center}.landing-note-text{color:var(--text-tertiary)}.toast{z-index:300;max-width:400px;box-shadow:var(--shadow-lg);background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text-primary);border-radius:10px;align-items:center;gap:10px;padding:12px 20px;font-size:14px;font-weight:500;line-height:1.3;animation:.3s ease-out toastIn;display:flex;position:fixed;top:64px;left:50%;transform:translate(-50%)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media (width>=768px){.landing-screen{padding:60px 40px 80px}.landing-title{font-size:2.5rem}.landing-card{padding:var(--space-8)}}@media (width>=1024px){.app-topbar{padding:0 32px}.topbar-link{padding:8px 16px;font-size:14px}.landing-screen{padding:80px 40px 100px}}@media (width>=1400px){.app-topbar{padding:0 48px}}.landing-footer{border-top:1px solid var(--border);z-index:1;flex-direction:column;align-items:center;gap:16px;width:100%;margin-top:60px;padding:40px 20px 24px;display:flex;position:relative}.footer-nav{flex-wrap:wrap;justify-content:center;gap:12px 20px;display:flex}.footer-link{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:14px;text-decoration:none;transition:color .15s}.footer-link:hover{color:var(--accent);text-decoration:underline}.footer-admin{margin-top:8px}.footer-admin .admin-secret-link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:13px;transition:color .15s}.footer-admin .admin-secret-link:hover{color:var(--text-secondary)}.footer-copy{color:var(--text-muted);text-align:center}.content-page-screen{max-width:100%;padding:20px max(20px,50% - 400px)}.content-page-body{padding:20px 0}.content-markdown{color:var(--text-primary);font-size:1rem;line-height:1.8}.content-markdown h1{color:var(--accent);margin-bottom:16px;font-size:1.75rem;font-weight:700;line-height:1.2}.content-markdown h2{color:var(--text-primary);margin:24px 0 12px;font-size:1.35rem;font-weight:600;line-height:1.3}.content-markdown h3{color:var(--text-primary);margin:20px 0 8px;font-size:1.1rem;font-weight:600;line-height:1.3}.content-markdown p{margin-bottom:16px}.content-markdown ul{margin-bottom:16px;padding-left:24px;list-style:outside}.content-markdown li{margin-bottom:8px;line-height:1.6}.content-markdown strong{font-weight:600}.blog-index-list{flex-direction:column;gap:16px;display:flex}.blog-index-card{cursor:pointer;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);padding:20px;transition:border-color .2s,transform .15s}.blog-index-card:hover{border-color:var(--accent);transform:translateY(-1px)}.blog-index-card h3{color:var(--accent);margin-bottom:6px;font-size:1.15rem;font-weight:600}.blog-index-card p{color:var(--text-secondary);font-size:.9rem;line-height:1.5}.admin-login-screen{justify-content:center;align-items:center;min-height:70vh;display:flex}.admin-login-container{gap:var(--space-6);flex-direction:column;width:100%;max-width:400px;display:flex}.admin-login-header{text-align:center;align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.admin-login-icon{font-size:2.5rem}.admin-login-subtitle{color:var(--text-tertiary);max-width:280px}.admin-login-form{gap:var(--space-4);flex-direction:column;display:flex}.admin-login-error{color:var(--danger);text-align:center}.admin-login-actions{gap:var(--space-3);flex-direction:column;display:flex}.admin-dashboard{gap:var(--space-6);padding-bottom:var(--space-8);flex-direction:column;display:flex}.admin-dashboard-header{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.admin-dashboard-header-left{align-items:center;gap:var(--space-3);display:flex}.admin-dashboard-title{font-size:var(--text-heading);color:var(--text-primary);font-weight:700}.admin-dashboard-badge{font-size:var(--text-tiny);background:var(--danger-soft);color:var(--danger);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;font-weight:600}.admin-actions-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.admin-btn-sm{font-size:var(--text-small);min-height:36px;padding:.5rem 1rem}.admin-metrics{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.admin-metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-1);flex-direction:column;display:flex}.admin-metric-label{font-size:var(--text-micro);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-weight:500}.admin-metric-value{font-size:var(--text-heading);color:var(--text-primary);font-weight:700;line-height:1.1}.admin-metric-value.success{color:var(--success)}.admin-metric-value.warning{color:var(--warning)}.admin-metric-value.danger{color:var(--danger)}.admin-filters{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.admin-filter-select{font-size:var(--text-small);font-family:var(--font-primary);background:var(--surface);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;outline:none;min-height:36px;padding:.5rem .75rem}.admin-filter-select:focus{border-color:var(--accent)}.admin-search-input{min-width:200px;max-width:300px;font-size:var(--text-small);font-family:var(--font-primary);background:var(--surface);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);outline:none;flex:1;min-height:36px;padding:.5rem .75rem}.admin-search-input:focus{border-color:var(--accent)}.admin-search-input::placeholder{color:var(--text-muted)}.admin-filter-count{font-size:var(--text-small);color:var(--text-tertiary);white-space:nowrap}.admin-table-wrapper{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:var(--text-small)}.admin-table th{text-align:left;font-size:var(--text-micro);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;padding:.625rem .75rem;font-weight:600}.admin-table th:hover{color:var(--text-primary)}.admin-table th .sort-arrow{opacity:.4;margin-left:4px}.admin-table th.sort-active .sort-arrow{opacity:1;color:var(--accent)}.admin-table td{border-bottom:1px solid var(--border);color:var(--text-primary);vertical-align:middle;padding:.625rem .75rem}.admin-table tr:last-child td{border-bottom:none}.admin-table tr{cursor:pointer;transition:background .1s}.admin-table tr:hover{background:var(--sidebar-link-hover)}.admin-table tr.selected{background:var(--accent-soft)}.admin-table-empty{text-align:center;padding:var(--space-8) var(--space-4);color:var(--text-tertiary)}.status-badge{border-radius:var(--radius-full);font-size:var(--text-micro);white-space:nowrap;align-items:center;gap:4px;padding:2px 8px;font-weight:500;display:inline-flex}.status-badge.pending{background:var(--warning-soft);color:var(--warning)}.status-badge.approved{background:var(--success-soft);color:var(--success)}.status-badge.rejected{background:var(--danger-soft);color:var(--danger)}.status-badge.sent{background:var(--accent-soft);color:var(--accent)}.payment-badge{border-radius:var(--radius-full);font-size:var(--text-micro);white-space:nowrap;align-items:center;gap:4px;padding:2px 8px;font-weight:500;display:inline-flex}.payment-badge.paid{background:var(--success-soft);color:var(--success)}.payment-badge.unpaid{background:var(--warning-soft);color:var(--warning)}.payment-badge.refunded{background:var(--danger-soft);color:var(--danger)}.admin-detail-overlay{background:var(--overlay);z-index:100;padding:var(--space-4);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.admin-detail-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:720px;margin-top:var(--space-8);margin-bottom:var(--space-8);box-shadow:var(--shadow-xl);flex-direction:column;max-height:90vh;display:flex;overflow-y:auto}.admin-detail-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);background:var(--surface);z-index:1;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.admin-detail-header h2{font-size:var(--text-subheading);font-weight:600}.admin-detail-close{cursor:pointer;color:var(--text-tertiary);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:4px 8px;font-size:1.25rem;display:flex}.admin-detail-close:hover{background:var(--sidebar-link-hover);color:var(--text-primary)}.admin-detail-body{padding:var(--space-5);gap:var(--space-5);flex-direction:column;display:flex}.admin-detail-section{gap:var(--space-2);flex-direction:column;display:flex}.admin-detail-section h3{font-size:var(--text-small);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.admin-detail-section p{font-size:var(--text-body);color:var(--text-primary);white-space:pre-wrap;line-height:1.6}.admin-detail-section .field-row{gap:var(--space-4);flex-wrap:wrap;display:flex}.admin-detail-section .field-row .field{flex-direction:column;gap:2px;display:flex}.admin-detail-section .field-row .field-label{font-size:var(--text-micro);color:var(--text-tertiary);font-weight:500}.admin-detail-section .field-row .field-value{font-size:var(--text-body);color:var(--text-primary)}.admin-detail-actions{gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.admin-detail-actions .btn{flex:1;min-width:100px}.admin-detail-note-input{width:100%;font-size:var(--text-small);font-family:var(--font-primary);background:var(--surface-2);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);resize:vertical;outline:none;min-height:60px;padding:.625rem .75rem}.admin-detail-note-input:focus{border-color:var(--accent)}.admin-activity{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.admin-activity-title{padding:var(--space-3) var(--space-4);font-size:var(--text-small);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);background:var(--surface-2);font-weight:600}.admin-activity-list{max-height:200px;overflow-y:auto}.admin-activity-item{padding:var(--space-2) var(--space-4);font-size:var(--text-small);color:var(--text-secondary);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.admin-activity-item:last-child{border-bottom:none}.admin-activity-item .activity-action{flex:1}.admin-activity-item .activity-time{font-size:var(--text-micro);color:var(--text-muted);white-space:nowrap;margin-left:var(--space-3)}.admin-activity-empty{padding:var(--space-4);text-align:center;color:var(--text-tertiary);font-size:var(--text-small)}.admin-secret-link{color:var(--text-muted);font-size:var(--text-tiny);cursor:pointer;border-radius:var(--radius-sm);opacity:.5;background:0 0;border:none;align-items:center;gap:4px;padding:4px 8px;font-family:inherit;transition:opacity .15s;display:inline-flex}.admin-secret-link:hover{opacity:1;color:var(--text-tertiary);background:var(--sidebar-link-hover)}@media (width>=1024px){.admin-metrics{grid-template-columns:repeat(5,1fr)}.admin-detail-panel{max-width:680px}}@media (width<=768px){.admin-metrics{grid-template-columns:repeat(2,1fr)}.admin-filters{flex-direction:column;align-items:stretch}.admin-search-input{max-width:100%}.admin-detail-panel{margin-top:var(--space-4);max-height:95vh}}.apology-restore-banner{background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-3);margin-bottom:var(--space-4);flex-direction:column;display:flex}.apology-restore-actions{gap:var(--space-2);display:flex}.apology-progress-bar{background:var(--surface-2);border-radius:var(--radius-full);height:8px;margin-bottom:var(--space-6);position:relative;overflow:hidden}.apology-progress-fill{background:var(--accent);border-radius:var(--radius-full);height:100%;transition:width .4s var(--ease-out)}.apology-progress-label{color:var(--text-tertiary);position:absolute;top:-18px;right:0}.apology-step{gap:var(--space-5);border-radius:var(--radius-md);padding:var(--space-5);background-image:url(/images/step-bg.png);background-position:50%;background-size:cover;flex-direction:column;display:flex;position:relative}[data-theme=light] .apology-step{background-image:none;background-color:var(--surface-2);border:1px solid var(--border-strong)}.apology-step:before{content:"";background:var(--step-overlay);pointer-events:none;z-index:0;border-radius:var(--radius-md);position:absolute;inset:0}.apology-step>*{z-index:1;position:relative}.success-content{align-items:center;gap:var(--space-5);text-align:center;padding:var(--space-6);border-radius:var(--radius-md);background-image:url(/images/success-bg.png);background-position:50%;background-size:cover;flex-direction:column;display:flex;position:relative}[data-theme=light] .success-content{background-image:none;background-color:var(--surface-2);border:1px solid var(--border-strong)}.apology-prompt{text-align:center;padding:var(--space-4) 0}.apology-prompt p{color:var(--text-secondary);margin:0 auto}.apology-textarea{font-family:var(--font-primary);line-height:1.6}.apology-nav{justify-content:space-between;gap:var(--space-3);padding-top:var(--space-4);display:flex}.apology-nav .btn{flex:1}.apology-checkbox-label{align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--surface-2);border-radius:var(--radius-md);cursor:pointer;display:flex}.apology-checkbox-label input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0}.apology-details{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.apology-details-summary{padding:var(--space-3) var(--space-4);cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none}.apology-details-summary:hover{background:var(--surface-2)}.apology-details-content{padding:var(--space-4);gap:var(--space-4);border-top:1px solid var(--border);flex-direction:column;display:flex}.apology-delivery-cards{gap:var(--space-4);flex-direction:column;display:flex}.apology-delivery-card{gap:var(--space-3);padding:var(--space-5);cursor:pointer;border:1px solid var(--border-strong);flex-direction:column;transition:all .15s;display:flex}.apology-delivery-card:hover{border-color:var(--accent);transform:translateY(-1px)}.apology-delivery-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent)}.apology-delivery-icon{font-size:2rem}.apology-delivery-price{align-items:baseline;gap:var(--space-2);display:flex}.apology-delivery-features{gap:var(--space-1);flex-direction:column;padding:0;list-style:none;display:flex}.apology-delivery-features li{color:var(--text-secondary)}.letter-draft-preview{gap:var(--space-3);flex-direction:column;display:flex}.letter-paper{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:var(--space-6);min-height:300px;box-shadow:var(--shadow-sm);position:relative}.letter-paper[data-anonymous]:after{content:"🔒 Anonymous";top:var(--space-3);right:var(--space-3);font-size:var(--text-micro);color:var(--text-tertiary);background:var(--surface-2);border-radius:var(--radius-full);padding:2px 8px;position:absolute}.letter-text{font-family:Georgia,Times New Roman,serif;font-size:var(--text-body);white-space:pre-wrap;word-wrap:break-word;color:var(--text-primary);line-height:1.8}.letter-edit-textarea{font-family:Georgia,Times New Roman,serif;font-size:var(--text-body);resize:vertical;min-height:300px;line-height:1.8}.letter-draft-actions{gap:var(--space-3);justify-content:center;display:flex}.apology-review-card{gap:var(--space-4);flex-direction:column;display:flex}.apology-review-letter{max-height:300px;overflow-y:auto}.apology-review-summary{gap:var(--space-3);border-top:1px solid var(--border);padding-top:var(--space-3);flex-direction:column;display:flex}.apology-review-row{justify-content:space-between;align-items:center;display:flex}.apology-review-total{border-top:1px solid var(--border);padding-top:var(--space-3);margin-top:var(--space-1)}.apology-payment-card{gap:var(--space-4);flex-direction:column;display:flex}.apology-payment-row-fields{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.apology-success{justify-content:center;min-height:500px}.apology-confirmation-card{align-items:center;gap:var(--space-2);padding:var(--space-5);text-align:center;flex-direction:column;display:flex}.apology-confirmation-code{font-family:var(--font-mono);font-size:var(--text-heading);color:var(--accent);letter-spacing:2px;font-weight:700}.apology-success-actions{gap:var(--space-3);flex-direction:column;width:100%;display:flex}.apology-dashboard-screen{gap:var(--space-5)}.apology-stats-grid{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.apology-stat-card{align-items:center;gap:var(--space-1);padding:var(--space-4);text-align:center;flex-direction:column;display:flex}.apology-stat-value{font-size:var(--text-heading);color:var(--accent);font-weight:700;line-height:1}.apology-stat-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.apology-reminders{gap:var(--space-3);flex-direction:column;display:flex}.apology-reminder-card{gap:var(--space-3);padding:var(--space-4);flex-direction:column;display:flex}.apology-reminder-actions{gap:var(--space-2);display:flex}.apology-tabs{gap:var(--space-2);border-bottom:1px solid var(--border);padding-bottom:0;display:flex}.apology-tab{padding:var(--space-3) var(--space-4);color:var(--text-tertiary);cursor:pointer;font-family:inherit;font-size:var(--text-small);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;font-weight:500;transition:all .15s}.apology-tab:hover{color:var(--text-secondary)}.apology-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.apology-tab-content{min-height:200px}.apology-letters-list{gap:var(--space-3);flex-direction:column;display:flex}.apology-letter-card{gap:var(--space-2);flex-direction:column;display:flex}.apology-letter-card-header{justify-content:space-between;align-items:center;display:flex}.apology-letter-card-meta{color:var(--text-tertiary);justify-content:space-between;align-items:center;display:flex}.apology-mood-list{gap:var(--space-2);flex-direction:column;display:flex}.apology-mood-entry{align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--surface);border-radius:var(--radius-md);display:flex}.apology-mood-emoji{text-align:center;width:40px;font-size:1.5rem}.apology-mood-info{flex-direction:column;gap:2px;display:flex}.apology-reminder-list{gap:var(--space-3);flex-direction:column;display:flex}.apology-reminder-item{padding:var(--space-4);justify-content:space-between;align-items:center;display:flex}.apology-plans-list{gap:var(--space-4);flex-direction:column;display:flex}.apology-plan-card{gap:var(--space-3);padding:var(--space-6);flex-direction:column;display:flex;position:relative}.apology-plan-popular{border-color:var(--accent);box-shadow:var(--shadow-md)}.apology-plan-badge{margin-bottom:var(--space-1);align-self:flex-start}.apology-plan-price{align-items:baseline;gap:var(--space-2);display:flex}.apology-plan-period{color:var(--text-tertiary)}.apology-plan-features{gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.apology-plan-feature{align-items:center;gap:var(--space-2);color:var(--text-secondary);display:flex}.apology-plan-check{color:var(--success);font-weight:700}.apology-plans-back{padding-top:var(--space-3)}.apology-payment-form{gap:var(--space-5);flex-direction:column;display:flex}.apology-payment-summary{margin-bottom:var(--space-4)}.apology-payment-row{justify-content:space-between;align-items:center;display:flex}.apology-payment-fields{gap:var(--space-4);margin-bottom:var(--space-4);flex-direction:column;display:flex}.apology-payment-note{text-align:center;color:var(--text-tertiary)}@media (width>=600px){.apology-delivery-cards{flex-direction:row}.apology-delivery-card{flex:1}.apology-stats-grid{grid-template-columns:repeat(4,1fr)}.apology-plans-list{flex-direction:row;align-items:stretch}.apology-plan-card{flex:1}}@media (width>=1024px){.apology-delivery-cards{flex-direction:row}.apology-delivery-card{flex:1}.apology-plans-list{flex-direction:row}}
