:root{--c-bg:#f4f6f2;--c-surface:#fff;--c-text:#14302b;--c-text-muted:#4f665c;--c-primary:#176752;--c-primary-weak:#e3f0e8;--c-border:#cfdcd3;--c-accent:#b5832d;--c-danger:#a12f2f;--c-warn-bg:#fff3cf;--c-success:#1f7a45;--bp-md:768px;--bp-lg:1024px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--r-sm:6px;--r-md:12px;--r-lg:16px;--r-pill:999px;--shadow:0 1px 3px #14302b14;--bar-h:56px;--font:system-ui, -apple-system, "PingFang SC", "Noto Sans SC", sans-serif;color:var(--c-text);background:var(--c-bg);font-family:var(--font);font-size:16px;line-height:1.6}*{box-sizing:border-box}html{overflow-x:clip}body{background:var(--c-bg);min-height:100dvh;margin:0}h1,h2,h3{overflow-wrap:anywhere;line-height:1.3}h1{font-size:28px}h2{font-size:22px}h3{font-size:18px}p,small,li,label{overflow-wrap:anywhere}button,input,select,textarea{font:inherit}a{color:var(--c-primary)}:focus-visible{outline:3px solid var(--c-accent);outline-offset:2px}.app-bar{z-index:20;align-items:center;gap:var(--s-2);min-height:var(--bar-h);padding:env(safe-area-inset-top) var(--s-4) 0;background:var(--c-surface);border-bottom:1px solid var(--c-border);display:flex;position:sticky;top:0}.app-bar-start{align-items:center;gap:var(--s-1);flex:1;min-width:0;display:flex}.app-title{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:18px;overflow:hidden}.back{min-width:44px;min-height:44px;padding:0 var(--s-2);color:var(--c-primary);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.tabbar{z-index:20;height:calc(var(--bar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--c-surface);border-top:1px solid var(--c-border);display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a,.tabbar button{min-width:44px;min-height:44px;color:var(--c-text-muted);background:0 0;border:0;flex:1;justify-content:center;align-items:center;padding:0;font-size:14px;text-decoration:none;display:flex}.tabbar button:disabled{opacity:.45;cursor:not-allowed}.tabbar a[aria-current=page]{color:var(--c-primary);font-weight:650}.app-main{width:min(640px,100%);padding:var(--s-4) var(--s-4) calc(var(--bar-h) + env(safe-area-inset-bottom) + var(--s-5));min-width:0;margin:0 auto}.app-main-admin{width:min(1100px,100%)}.no-tab{padding-bottom:var(--s-6)}.admin-nav{gap:var(--s-2);max-width:100%;padding:var(--s-2) var(--s-4);background:var(--c-surface);border-bottom:1px solid var(--c-border);display:flex;overflow-x:auto}.admin-nav a{min-height:44px;padding:0 var(--s-3);border-radius:var(--r-pill);color:var(--c-text);white-space:nowrap;flex:none;align-items:center;text-decoration:none;display:inline-flex}.admin-nav a[aria-current=page]{background:var(--c-primary-weak);color:var(--c-primary);font-weight:650}.btn{min-width:44px;min-height:44px;padding:var(--s-2) var(--s-4);border-radius:var(--r-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;font-size:16px;line-height:1.3;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--c-primary);color:#fff}.btn-secondary{background:var(--c-primary-weak);color:var(--c-primary);border-color:var(--c-border)}.btn-ghost{color:var(--c-primary);background:0 0}.btn-danger{color:var(--c-danger);border-color:var(--c-danger);background:#fff}.field{margin:var(--s-3) 0}.field>label,.check{align-items:center;gap:var(--s-2);min-height:44px;display:flex}.field>label{min-height:0;margin-bottom:var(--s-1);font-size:14px;display:block}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;max-width:100%;min-height:44px;padding:var(--s-2) var(--s-3);border:1px solid var(--c-border);border-radius:var(--r-sm);color:inherit;background:#fff;font-size:16px;display:block}textarea{min-height:96px}.muted,.toast-code,small{color:var(--c-text-muted);font-size:14px}.field-error,.danger{color:var(--c-danger)}.card{margin:var(--s-3) 0;padding:var(--s-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--shadow)}.badge{min-height:28px;padding:0 var(--s-2);border-radius:var(--r-pill);background:var(--c-primary-weak);color:var(--c-text);align-items:center;font-size:12px;display:inline-flex}.badge-ok{color:var(--c-success);background:#e5f5ea}.badge-warn{background:var(--c-warn-bg);color:#6d5310}.badge-danger{color:var(--c-danger);background:#fde8e8}.meta{gap:var(--s-2);color:var(--c-text-muted);flex-wrap:wrap;align-items:center;font-size:14px;display:flex}.notice,.toast{padding:var(--s-3) var(--s-4);background:var(--c-warn-bg);border-radius:var(--r-sm)}.toast{z-index:40;left:50%;top:calc(env(safe-area-inset-top) + var(--s-3));width:min(640px,100% - 32px);box-shadow:var(--shadow);pointer-events:none;margin:0;position:fixed;transform:translate(-50%)}.toast-code{display:block}.section-tabs,.sticky-actions,.actions,.rec-actions{gap:var(--s-2);flex-wrap:wrap;display:flex}.section-tabs{margin:var(--s-3) 0}.section-tabs button{border:1px solid var(--c-border);border-radius:var(--r-pill);background:var(--c-surface);min-width:44px;min-height:44px;color:var(--c-text);flex:auto}.section-tabs button[aria-selected=true]{background:var(--c-primary-weak);border-color:var(--c-primary);color:var(--c-primary);font-weight:650}.options,.segments{gap:var(--s-2);display:grid}.segments{grid-template-columns:repeat(2,minmax(0,1fr))}.option,.segments label{align-items:center;gap:var(--s-2);min-height:44px;padding:var(--s-2) var(--s-3);border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface);display:flex}.option:has(input:checked){background:var(--c-primary-weak);border-color:var(--c-primary)}.segments label:has(input:checked){background:var(--c-primary-weak);border-color:var(--c-primary)}.option input,.segments input{flex:none;width:20px;height:20px}.option span,.segments span{overflow-wrap:anywhere;min-width:0}.segments span{font-size:14px}.progress{margin:var(--s-3) 0}.progress-track{border-radius:var(--r-pill);background:var(--c-border);height:8px;overflow:hidden}.progress-fill{background:var(--c-primary);height:100%}.sticky-actions{bottom:calc(var(--bar-h) + env(safe-area-inset-bottom));z-index:10;margin-top:var(--s-4);padding:var(--s-2);background:var(--c-surface);border-top:1px solid var(--c-border);flex-wrap:nowrap;align-items:center;position:sticky}.sticky-actions>.btn,.sticky-actions>.menu>.btn{padding-right:var(--s-3);padding-left:var(--s-3);white-space:nowrap;flex:auto}.sticky-actions>.menu{flex:none;margin-top:0;position:relative}.sticky-actions>.menu .actions{z-index:2;width:max-content;max-width:calc(100vw - 32px);padding:var(--s-2);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-sm);position:absolute;bottom:calc(100% + 8px);left:0}.submission-lock{border:0;min-width:0;margin:0;padding:0}.score{margin:var(--s-2) 0;font-size:28px;font-weight:700;line-height:1.3}.cards,.rec-grid{gap:var(--s-3);display:grid}.menu{margin-top:var(--s-2)}.menu summary{cursor:pointer;align-items:center;min-width:44px;min-height:44px;display:inline-flex}.avatar{border-radius:var(--r-pill);background:var(--c-primary-weak);justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;display:inline-flex}.person{gap:var(--s-3);align-items:center;display:flex}.danger-zone{margin-top:var(--s-5);padding:var(--s-4);border:1px solid var(--c-danger);border-radius:var(--r-md)}.skeleton-line{height:16px;margin:var(--s-3) 0;border-radius:var(--r-sm);background:linear-gradient(90deg, var(--c-border), #fff, var(--c-border))}.empty,.error-state{padding:var(--s-5) var(--s-4);text-align:center}.linkish{min-height:44px;color:var(--c-primary);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}dialog{width:min(420px,100vw - 32px);max-width:100%;padding:var(--s-5);border-radius:var(--r-lg);box-shadow:var(--shadow);border:0}dialog::backdrop{background:#14302b73}@media (width>=768px){.segments{grid-template-columns:repeat(4,minmax(0,1fr))}.tabbar{background:0 0;border:0;flex:none;order:-1;height:auto;padding:0;position:static}.tabbar a,.tabbar button{padding:0 var(--s-3);flex:none}.app-main{padding-bottom:var(--s-6)}.sticky-actions{bottom:0}}@media (width>=1024px){.cards,.rec-grid{grid-template-columns:1fr 1fr}}.locale-switch,.tz-switch{align-items:center;gap:var(--s-2);min-height:44px;display:inline-flex}.locale-switch select,.tz-switch select{min-width:44px;max-width:100%;min-height:44px}.locale-switch-label{white-space:nowrap;flex-shrink:0}.locale-switch-inline{width:100%;max-width:100%}.locale-switch select{flex:auto;width:auto}.locale-switch-bar{display:none}.legal-links{gap:var(--s-3);flex-wrap:wrap;display:flex}@media (width>=768px){.locale-switch-bar{margin-left:auto;display:flex}.locale-switch-inline{display:none}}.match-badge{align-items:baseline;gap:var(--s-2);margin:var(--s-2) 0 var(--s-1);display:flex}.match-percent{color:var(--c-primary);letter-spacing:-.02em;margin:0;font-size:38px;font-weight:800;line-height:1.1}.match-label{color:var(--c-text-muted);font-size:13px;font-weight:600}.rec-open{color:inherit;border-radius:var(--r-md);padding:var(--s-1);margin:calc(-1 * var(--s-1));text-decoration:none;transition:background-color .15s;display:block}.rec-open:hover{background-color:var(--c-primary-weak)}.rec-view-profile{align-items:center;gap:var(--s-1);color:var(--c-primary);margin-top:var(--s-1);min-height:44px;font-size:14px;font-weight:600;display:inline-flex}.rec-actions{gap:var(--s-2);margin-top:var(--s-2);display:flex}.rec-actions>.btn{flex:1 1 0;min-height:44px}.rec-card{position:relative}.rec-card .person{padding-right:48px}.rec-card-menu{top:var(--s-3);right:var(--s-3);z-index:2;margin-top:0;position:absolute}.rec-card-menu summary{border-radius:var(--r-sm);width:44px;min-width:44px;height:44px;min-height:44px;color:var(--c-text-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;list-style:none;transition:background-color .15s,color .15s;display:inline-flex}.rec-card-menu summary::-webkit-details-marker{display:none}.rec-card-menu summary::marker{display:none}.rec-card-menu summary:hover,.rec-card-menu summary:focus-visible{color:var(--c-text);background:var(--c-primary-weak)}.rec-card-menu .actions{z-index:10;gap:var(--s-2);width:max-content;min-width:120px;padding:var(--s-2);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-sm);flex-direction:column;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 4px 12px #14302b26}.rec-card-menu .actions .btn{width:100%;min-height:40px}.cheers-dialog{justify-content:center;align-items:center;gap:var(--s-4);text-align:center;border:0;border-radius:0;flex-direction:column;width:100vw;max-width:none;height:100vh;max-height:none;margin:0;display:flex;position:fixed;inset:0}.cheers-close{top:var(--s-3);right:var(--s-3);border-radius:var(--r-pill);background:var(--c-primary-weak);width:44px;min-width:44px;height:44px;min-height:44px;color:var(--c-primary);cursor:pointer;appearance:none;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute}.cheers-close svg{width:20px;height:20px}.cheers-people{justify-content:center;align-items:center;gap:var(--s-4);display:flex}.cheers-person{align-items:center;gap:var(--s-2);flex-direction:column;width:96px;display:flex}.cheers-avatar{width:72px;height:72px;font-size:32px}.cheers-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.cheers-cups{width:120px;height:72px;color:var(--c-primary,#0f6e56);display:flex;position:relative}.cheers-glass{width:64px;height:64px}.cheers-glass-left{animation:.9s ease-in-out infinite alternate cheers-left}.cheers-glass-right{margin-left:-8px;animation:.9s ease-in-out infinite alternate cheers-right}.cheers-confetti{pointer-events:none;position:absolute;inset:0}.cheers-confetti i{background:#e2a33a;border-radius:2px;width:8px;height:8px;animation:1.2s ease-in-out infinite cheers-pop;position:absolute}.cheers-confetti i:nth-child(2){background:#d4564e;animation-delay:.1s;left:20%}.cheers-confetti i:nth-child(3){background:#3d7ea6;animation-delay:.2s;left:70%}.cheers-confetti i:nth-child(4){background:#5b8f4e;animation-delay:.3s;top:10%;left:40%}.cheers-confetti i:nth-child(5){animation-delay:.15s;top:30%;left:80%}.cheers-dialog h2{margin:0;font-size:64px;line-height:1}@keyframes cheers-left{0%{transform:rotate(-16deg)}to{transform:rotate(8deg)}}@keyframes cheers-right{0%{transform:rotate(16deg)}to{transform:rotate(-8deg)}}@keyframes cheers-pop{0%{opacity:0;transform:translateY(8px)scale(.6)}to{opacity:1;transform:translateY(-18px)scale(1)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
