@font-face{font-family:Fredoka;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/3e5302f118d6bde7-s.woff2) format("woff2");unicode-range:u+0307-0308,u+0590-05ff,u+200c-2010,u+20aa,u+25cc,u+fb1d-fb4f}@font-face{font-family:Fredoka;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/bb36247b0b027bd1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fredoka;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/bca7023bf625e650-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fredoka;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/3e5302f118d6bde7-s.woff2) format("woff2");unicode-range:u+0307-0308,u+0590-05ff,u+200c-2010,u+20aa,u+25cc,u+fb1d-fb4f}@font-face{font-family:Fredoka;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/bb36247b0b027bd1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fredoka;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/bca7023bf625e650-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fredoka;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/3e5302f118d6bde7-s.woff2) format("woff2");unicode-range:u+0307-0308,u+0590-05ff,u+200c-2010,u+20aa,u+25cc,u+fb1d-fb4f}@font-face{font-family:Fredoka;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/bb36247b0b027bd1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fredoka;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/bca7023bf625e650-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fredoka Fallback;src:local("Arial");ascent-override:95.64%;descent-override:23.17%;line-gap-override:0.00%;size-adjust:101.84%}.__className_160d87{font-family:Fredoka,Fredoka Fallback;font-style:normal}.__variable_160d87{--font-display:"Fredoka","Fredoka Fallback"}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/abfec168c8990f67-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/3131c862d4942660-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6a9c36ea9dc9b36b-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e1694c6cb47c173f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ee40bb094c99a29a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/abfec168c8990f67-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/3131c862d4942660-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6a9c36ea9dc9b36b-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e1694c6cb47c173f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ee40bb094c99a29a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/abfec168c8990f67-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/3131c862d4942660-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6a9c36ea9dc9b36b-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e1694c6cb47c173f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ee40bb094c99a29a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/abfec168c8990f67-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/3131c862d4942660-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/6a9c36ea9dc9b36b-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/e1694c6cb47c173f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/ee40bb094c99a29a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Nunito Fallback;src:local("Arial");ascent-override:99.71%;descent-override:34.82%;line-gap-override:0.00%;size-adjust:101.39%}.__className_c046d1{font-family:Nunito,Nunito Fallback;font-style:normal}.__variable_c046d1{--font-body:"Nunito","Nunito Fallback"}:root{--navy:#243463;--navy-2:#34477f;--navy-deep:#15203c;--pink:#ff7eb6;--pink-deep:#e85a93;--pink-soft:#ffe4ef;--panel:#ffffff;--panel-2:#fff6fb;--tint:#ffe9f2;--border:#f5cfe1;--border-strong:#efbcd4;--text:#233461;--muted:#8b8598;--accent:var(--navy);--accent-2:var(--pink);--accent-soft:var(--pink-soft);--bg:var(--navy-deep);--info:#4dabf7;--success:#34c759;--success-ink:#137a3a;--warning:#f59f00;--error:#ff6b6b;--radius:18px;--radius-sm:12px;--shadow:0 18px 50px rgba(16,24,50,0.45);--shadow-sm:0 5px 16px rgba(36,52,99,0.12);--font-display:"Fredoka",system-ui,sans-serif;--font-body:"Nunito",system-ui,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;color:var(--text);font-family:var(--font-body,system-ui),sans-serif;font-size:14.5px;background:linear-gradient(160deg,#15203c,#243463 60%,#2c2350);background-attachment:fixed}.app,body,html{min-height:100vh}.app{padding:22px}.shell{max-width:1280px;margin:0 auto;border:2px solid rgba(255,255,255,.4);border-radius:26px;background:linear-gradient(150deg,#ffdcec,#ff93bf 26%,#b173a8 52%,#5a5390 74%,#283a6e);padding:20px;box-shadow:var(--shadow);animation:pop-in .4s ease both}.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;padding:4px 6px}.header h1{font-family:var(--font-display);font-size:24px;margin:0;font-weight:700;letter-spacing:.2px;background:linear-gradient(100deg,var(--navy),var(--pink-deep));-webkit-background-clip:text;background-clip:text;color:transparent}.header .subtitle{color:#6a557a;font-size:13px;margin-top:2px;font-weight:700}.switcher{display:inline-flex;gap:4px;background:#fff;border:2px solid #ffd0e2;border-radius:999px;padding:5px;box-shadow:var(--shadow-sm)}.switcher button{border:0;background:transparent;color:var(--navy);padding:7px 16px;border-radius:999px;cursor:pointer;font-size:13px;font-weight:700;font-family:var(--font-body);transition:transform .12s ease,background .18s ease,color .18s ease}.switcher button:hover{color:var(--pink-deep);transform:translateY(-1px)}.switcher button.active{background:linear-gradient(120deg,var(--navy),var(--navy-2));color:white;box-shadow:0 4px 12px rgba(36,52,99,.4)}.grid{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr);grid-gap:14px;gap:14px;height:74vh}.left{grid-row:1/span 2}.panel{display:flex;flex-direction:column;background:var(--panel);border:2px solid #ffffff;border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 22px rgba(36,52,99,.16);animation:pop-in .45s ease both}.panel:nth-child(2){animation-delay:.06s}.panel:nth-child(3){animation-delay:.12s}.panel-head{padding:11px 15px;border-bottom:2px solid var(--border);font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--navy);font-weight:800;display:flex;justify-content:space-between;align-items:center;background:var(--tint)}.left .panel-head{padding:14px 16px;background:linear-gradient(110deg,#ffe1ee,#ffd0e6)}.left .head-title{font-family:var(--font-display);font-size:23px;font-weight:700;text-transform:none;letter-spacing:.2px;background:linear-gradient(100deg,var(--navy),var(--pink-deep));-webkit-background-clip:text;background-clip:text;color:transparent}.panel-body{flex:1 1;overflow:auto;padding:15px}.pill{font-size:11px;font-weight:800;padding:3px 10px;border-radius:999px;border:1.5px solid var(--border-strong);color:var(--pink-deep);background:var(--pink-soft);text-transform:none;letter-spacing:normal;white-space:nowrap}.msg{margin-bottom:13px;max-width:86%;animation:msg-in .3s ease both}.msg .who{font-size:11px;color:var(--muted);margin-bottom:4px;font-weight:700;padding:0 4px}.msg .bubble{background:#fff;border:2px solid var(--border);border-radius:16px 16px 16px 5px;padding:10px 13px;line-height:1.5;box-shadow:var(--shadow-sm)}.msg.user{margin-left:auto}.msg.user .who{text-align:right}.msg.user .bubble{background:linear-gradient(120deg,#ffe4ef,#ffd6ea);border-color:#ffc2da;border-radius:16px 16px 5px 16px}.chat-input{display:flex;gap:10px;padding:13px 15px;border-top:2px solid var(--border);background:var(--panel-2)}.chat-input input{flex:1 1;background:#fff;border:2px solid var(--border);border-radius:999px;color:var(--text);padding:11px 16px;font-size:14px;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.chat-input input:focus{outline:none;border-color:var(--pink);box-shadow:0 0 0 4px var(--pink-soft)}.chat-input button{background:linear-gradient(120deg,var(--navy),var(--navy-2));color:white;border:0;border-radius:999px;padding:0 22px;cursor:pointer;font-weight:800;font-family:var(--font-body);box-shadow:0 5px 14px rgba(36,52,99,.35);transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.chat-input button:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.08)}.chat-input button:active:not(:disabled){transform:translateY(0) scale(.97)}.chat-input button:disabled{opacity:.55;cursor:not-allowed}.stub{border:2px dashed var(--border-strong);border-radius:var(--radius-sm);padding:12px 14px;color:var(--muted);font-size:13px;margin-top:12px;background:var(--panel-2);font-weight:600}.controls{display:flex;flex-direction:column;gap:11px;padding-bottom:15px;margin-bottom:15px;border-bottom:2px dashed var(--border)}.ctl-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.controls button,.controls select,.file-btn{background:#fff;border:2px solid var(--border-strong);color:var(--navy);border-radius:var(--radius-sm);padding:9px 14px;font-size:13px;font-weight:700;font-family:var(--font-body);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .15s ease}.controls button:hover:not(:disabled),.controls select:hover,.file-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.controls button:active:not(:disabled),.file-btn:active{transform:translateY(0) scale(.97)}.controls button.primary,.file-btn{background:linear-gradient(120deg,var(--navy),var(--navy-2));border-color:transparent;color:white;box-shadow:0 5px 14px rgba(36,52,99,.3)}.controls button:disabled,.file-btn.disabled{opacity:.5;cursor:not-allowed}.controls button.reset-btn{margin-left:auto;background:#fff;border-color:#ffc9d4;color:#e5577a}.controls button.reset-btn:hover:not(:disabled){background:#fff0f4}.phone-label{font-size:12px;color:var(--muted);white-space:nowrap;font-weight:700}.controls input.phone-input{flex:1 1;min-width:140px;background:#fff;border:2px solid var(--border-strong);color:var(--text);border-radius:var(--radius-sm);padding:9px 13px;font-size:13px;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.controls input.phone-input:focus{outline:none;border-color:var(--pink);box-shadow:0 0 0 4px var(--pink-soft)}.controls textarea{background:#fff;border:2px solid var(--border-strong);color:var(--text);border-radius:var(--radius-sm);padding:11px 13px;font-size:13.5px;resize:vertical;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.controls textarea:focus{outline:none;border-color:var(--pink);box-shadow:0 0 0 4px var(--pink-soft)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:12px;font-weight:700;background:var(--pink-soft);border:1.5px solid #ffc2da;color:var(--pink-deep);border-radius:999px;padding:5px 12px;cursor:pointer;transition:transform .12s ease}.chip:hover{transform:translateY(-1px) scale(1.03)}.plan{background:var(--panel-2);border:2px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px}.plan-goal{font-size:13px;color:var(--text);margin-bottom:10px;font-weight:600;flex-wrap:wrap}.plan-goal,.task,.task-banner{display:flex;align-items:center;gap:8px}.task,.task-banner{justify-content:space-between;padding:7px 0}.task-banner{flex-direction:column;align-items:flex-start;background:linear-gradient(120deg,#ffe9f2,#ffe1ee);border:2px solid #ffc8de;border-radius:var(--radius-sm);padding:12px 14px}.task-banner-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--pink-deep);font-weight:800}.task-banner-title{font-family:var(--font-display);font-size:18px;font-weight:600;margin:3px 0 7px;color:var(--navy)}.hint-note{font-size:12.5px;color:#b06f00;font-weight:700}.thread{display:flex;flex-direction:column}.modal-overlay{position:fixed;inset:0;background:rgba(16,24,50,.6);display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;animation:fade-in .2s ease both}.modal{width:min(900px,92vw);height:min(85vh,1000px);background:var(--panel);border:2px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px rgba(16,24,50,.5);animation:pop-in .25s ease both}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;border-bottom:2px solid var(--border);font-size:14px;font-weight:800;color:var(--navy);background:var(--tint)}.modal-body{flex:1 1;min-height:0;background:#fff}.paper-frame{width:100%;height:100%;border:0;display:block}.camera-box{flex:1 1;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);font-weight:600;padding:16px;background:repeating-linear-gradient(45deg,#fff6fb,#fff6fb 12px,#ffe9f2 0,#ffe9f2 24px)}.cam-wrap{flex:1 1;display:flex;flex-direction:column;min-height:0}.cam-video{width:100%;flex:1 1;object-fit:cover;background:#000;min-height:0}.cam-note{font-size:11.5px;color:var(--muted);margin-top:8px;line-height:1.45;font-weight:600}.cam-status-bar{padding:10px 13px;border-top:2px solid var(--border);background:var(--panel-2)}.cam-badge{display:inline-block;font-size:12px;font-weight:800;padding:5px 12px;border-radius:999px;border:1.5px solid var(--border-strong);background:#fff}.cam-badge.success{color:var(--success-ink);border-color:#b6e8c4;background:#eafff1}.cam-badge.warning{color:#b06f00;border-color:#ffe2a8;background:#fff7e6}.cam-badge.info{color:var(--info)}.log-line{display:grid;grid-template-columns:54px 14px 1fr;grid-gap:8px;gap:8px;padding:7px 0;border-bottom:1.5px solid #fbe7f0;font-size:12.5px;align-items:start}.log-line .time{color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700}.log-line .dot{width:9px;height:9px;border-radius:50%;margin-top:5px}.dot.info{background:var(--info)}.dot.success{background:var(--success)}.dot.warning{background:var(--warning);animation:pulse 1.6s ease-in-out infinite}.dot.error{background:var(--error);animation:pulse 1.2s ease-in-out infinite}.ctl{border:0;border-radius:999px;padding:6px 16px;font-size:12.5px;font-weight:800;font-family:var(--font-body);cursor:pointer;color:white;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease;box-shadow:var(--shadow-sm)}.ctl:hover{transform:translateY(-1px);filter:brightness(1.05)}.ctl:active{transform:translateY(0) scale(.96)}.ctl-start{background:linear-gradient(120deg,#34c759,#5fd97e);color:#0b3a1c}.ctl-stop{background:linear-gradient(120deg,#ff7b7b,#ff5e5e)}.clear-btn{background:linear-gradient(120deg,var(--navy),var(--navy-2));text-transform:none;letter-spacing:normal}.summary{border-top:2px solid var(--border);padding:11px 15px;font-size:12.5px;color:var(--muted);line-height:1.7;font-weight:600;background:var(--panel-2)}.summary b{color:var(--pink-deep);font-weight:800}.app-footer{max-width:1280px;margin:14px auto 4px;padding:0 8px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#cdd6f5;font-size:12.5px;font-weight:600}.link-btn{background:transparent;border:0;color:#fff;font-weight:800;font-family:var(--font-body);font-size:12.5px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:4px 2px}.link-btn:hover{color:var(--pink)}.terms-modal{width:min(640px,92vw);height:min(80vh,760px)}.terms-body{background:#fff;color:var(--text);padding:20px 22px;overflow:auto;line-height:1.6}.terms-body h2{font-family:var(--font-display);font-size:18px;color:var(--navy);margin:18px 0 6px}.terms-body h2:first-child{margin-top:0}.terms-body ul{margin:6px 0;padding-left:20px}.terms-body li{margin:5px 0}.terms-body .terms-foot{margin-top:18px;padding-top:14px;border-top:2px dashed var(--border);color:var(--pink-deep);font-weight:700}.celebrate{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:2000}.confetti{position:absolute;top:-48px;will-change:transform;animation-name:confetti-fall;animation-timing-function:ease-in;animation-iteration-count:1}.celebrate-banner{position:absolute;top:32%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-display);font-size:clamp(34px,6vw,56px);font-weight:700;color:var(--pink-deep);text-shadow:0 3px 0 #fff,0 10px 26px rgba(16,24,50,.25);white-space:nowrap;animation:banner-pop .5s cubic-bezier(.2,1.4,.4,1) both,banner-fade .7s ease 2.1s forwards}@keyframes confetti-fall{0%{transform:translateY(-48px) rotate(0deg);opacity:0}8%{opacity:1}to{transform:translateY(108vh) rotate(600deg);opacity:1}}@keyframes banner-pop{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@keyframes banner-fade{to{opacity:0;transform:translate(-50%,-75%) scale(1.05)}}@keyframes pop-in{0%{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes msg-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.25)}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}