*{box-sizing:border-box;margin:0;padding:0}:root{--green:#2d6a1f;--green2:#3b8a28;--green3:#eaf4e6;--green4:#c5e3ba;--amber:#b86e00;--amber-bg:#fef3dc;--red:#c0392b;--red-bg:#fdecea;--blue:#1a5ea8;--blue-bg:#e8f0fb;--text:#111827;--text2:#6b7280;--text3:#9ca3af;--white:#fff;--border:#e5e7eb;--gray2:#f3f4f6;--gray3:#e5e7eb;--radius:14px;--radius-sm:10px;--radius-xs:7px;--font:"DM Sans", sans-serif}body{font-family:var(--font);color:var(--text);background:#f7f9f6;max-width:480px;min-height:100vh;margin:0 auto}.loading{height:100vh;color:var(--text2);justify-content:center;align-items:center;display:flex}.auth-screen{background:#fff;flex-direction:column;min-height:100vh;display:flex}.auth-hero{background:linear-gradient(160deg, var(--green) 0%, var(--green2) 100%);color:#fff;padding:60px 28px 40px}.auth-logo{color:#fff;margin-bottom:4px;font-size:32px;font-weight:700}.auth-tagline{color:#ffffffbf;font-size:13px}.auth-body{flex:1;padding:28px}.auth-title{margin-bottom:20px;font-size:22px;font-weight:600}.error-msg{background:var(--red-bg);color:var(--red);border-radius:var(--radius-xs);margin-bottom:14px;padding:10px 14px;font-size:13px}.auth-footer{text-align:center;color:var(--text2);margin-top:18px;font-size:13px}.auth-footer span{color:var(--green);cursor:pointer;font-weight:500}.or-divider{text-align:center;color:var(--text3);margin:16px 0;font-size:13px}.form-group{margin-bottom:14px}.form-label{color:var(--text2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px;font-size:12px;font-weight:500;display:block}.form-input{border:1.5px solid var(--border);border-radius:var(--radius-xs);width:100%;font-family:var(--font);color:var(--text);background:#fff;outline:none;padding:12px 14px;font-size:14px}.form-input:focus{border-color:var(--green2)}.btn-full{border-radius:var(--radius-sm);width:100%;font-family:var(--font);cursor:pointer;border:none;padding:14px;font-size:15px;font-weight:600}.btn-green{background:var(--green);color:#fff}.btn-google{color:var(--text);background:#fff;justify-content:center;align-items:center;gap:10px;margin-top:10px;display:flex;border:1.5px solid var(--border)!important}.bottom-nav{border-top:1px solid var(--border);z-index:50;background:#fff;grid-template-columns:repeat(6,1fr);width:100%;max-width:480px;padding:8px 0 20px;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-btn{cursor:pointer;font-family:var(--font);background:0 0;border:none;flex-direction:column;align-items:center;gap:3px;padding:4px 0;display:flex}.nav-btn svg{width:22px;height:22px;stroke:var(--text3)}.nav-btn span{color:var(--text3);font-size:10px}.nav-btn.active svg{stroke:var(--green)}.nav-btn.active span{color:var(--green);font-weight:500}.page{min-height:100vh;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 130px);flex-direction:column;display:flex}.bottom-btn{z-index:60;border-top:1px solid var(--border);background:#fff;padding:12px 20px 16px;position:fixed;bottom:64px;left:0;right:0}.scroll-area{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 96px);flex:1;overflow-y:auto}.topbar{border-bottom:1px solid var(--border);z-index:40;background:#fff;justify-content:space-between;align-items:center;padding:14px 20px;display:flex;position:sticky;top:0}.topbar-title{font-size:18px;font-weight:600}.topbar-back{color:var(--green);cursor:pointer;font-size:14px;font-weight:500;font-family:var(--font);background:0 0;border:none}.section{padding:16px 20px 0}.section-label{color:var(--text2);text-transform:uppercase;letter-spacing:.07em;margin-bottom:10px;font-size:11px;font-weight:600}.card{border-radius:var(--radius-sm);border:1px solid var(--border);background:#fff;margin-bottom:10px;padding:14px}.badge{border-radius:20px;align-items:center;padding:3px 9px;font-size:11px;font-weight:500;display:inline-flex}.badge-ready{background:var(--green3);color:var(--green)}.badge-progress{background:var(--blue-bg);color:var(--blue)}.badge-pending{background:var(--amber-bg);color:var(--amber)}.badge-done{color:var(--text2);background:#f3f4f6}.badge-cancelled{background:var(--red-bg);color:var(--red)}.setup-header{background:var(--green);color:#fff;padding:44px 24px 24px}.setup-step{color:#ffffffb3;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;font-size:12px}.setup-title{color:#fff;font-size:24px;font-weight:700}.freq-options{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.freq-card{border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;text-align:center;padding:12px;transition:all .15s}.freq-card.selected{border-color:var(--green);background:var(--green3)}.freq-times{color:var(--text);font-size:18px;font-weight:600}.freq-card.selected .freq-times{color:var(--green)}.freq-label{color:var(--text2);margin-top:2px;font-size:11px}.freq-reminder{color:var(--green);margin-top:4px;font-size:10px;font-weight:500}.home-hero{background:linear-gradient(135deg, var(--green) 0%, var(--green2) 100%);color:#fff;padding:40px 20px 28px}.greeting{color:#ffffffbf;margin-bottom:2px;font-size:13px}.hero-name{color:#fff;font-size:26px;font-weight:700}.hero-sub{color:#ffffffa6;margin-top:4px;font-size:12px}.stats-row{grid-template-columns:1fr 1fr;gap:10px;padding:16px 20px 0;display:grid}.stat-card{border-radius:var(--radius-sm);border:1px solid var(--border);background:#fff;padding:14px}.stat-val{color:var(--text);font-size:26px;font-weight:600}.stat-val.green{color:var(--green)}.stat-val.amber{color:var(--amber)}.stat-lbl{color:var(--text2);margin-top:2px;font-size:11px}.reminder-banner{background:var(--amber-bg);border-radius:var(--radius-sm);border:1px solid #f5c97a;margin:16px 20px 0;padding:14px}.reminder-top{align-items:center;gap:8px;margin-bottom:4px;display:flex}.reminder-icon{font-size:16px}.reminder-title{color:var(--amber);font-size:13px;font-weight:600}.reminder-sub{color:var(--amber);opacity:.85;padding-left:24px;font-size:12px}.reminder-btn{background:var(--amber);color:#fff;font-size:12px;font-weight:600;font-family:var(--font);cursor:pointer;border:none;border-radius:20px;margin-top:10px;margin-left:24px;padding:7px 16px}.vipps-banner{background:var(--green3);border:1px solid var(--green4);border-radius:var(--radius-xs);color:var(--green);margin-top:10px;padding:10px 12px;font-size:12px;font-weight:500}.bottom-btn{border-top:2px solid var(--green);z-index:40;background:#fff;flex-shrink:0;align-items:center;padding:16px 20px 24px;display:flex;position:relative}.progress-bar-wrap{background:var(--gray3);flex-shrink:0;height:3px}.progress-bar-fill{background:var(--green);height:100%;transition:width .3s}.step-title{color:var(--text);margin-bottom:4px;font-size:22px;font-weight:700}.step-content{flex:1;padding:20px 20px 156px;overflow-y:auto}.step-content::-webkit-scrollbar{width:6px}.step-content::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}.racket-select-card{border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:12px;margin-bottom:10px;padding:14px;transition:all .15s;display:flex}.racket-select-card.selected{border-color:var(--green);background:var(--green3)}.check-circle{border:1.5px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.check-circle.checked{background:var(--green);border-color:var(--green)}.add-racket-btn{color:var(--green);cursor:pointer;text-align:center;border:1.5px dashed var(--green);border-radius:var(--radius-sm);background:0 0;margin-top:16px;padding:12px;font-size:14px;font-weight:500}.string-tab-row{gap:8px;margin-bottom:16px;display:flex}.string-tab{border-radius:var(--radius-xs);border:1.5px solid var(--border);color:var(--text2);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font);background:#fff;flex:1;padding:10px 12px;transition:all .15s}.review-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;margin-bottom:12px;padding:14px}.add-racket-btn{border:1.5px dashed var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--text2);align-items:center;gap:10px;margin-top:4px;padding:14px;font-size:14px;display:flex}.string-tab-row{grid-template-columns:1fr 1fr 1fr;gap:6px;margin-bottom:18px;display:grid}.string-tab{border-radius:var(--radius-xs);border:1.5px solid var(--border);text-align:center;cursor:pointer;color:var(--text2);font-size:12px;font-weight:500;font-family:var(--font);background:#fff;padding:8px}.string-tab.active{border-color:var(--green);background:var(--green3);color:var(--green)}.string-option{border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px 14px;transition:all .15s;display:flex}.string-option.selected{border-color:var(--green);background:var(--green3)}.review-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;padding:4px 14px}.review-row{border-bottom:1px solid var(--gray2);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.review-row:last-child{border-bottom:none}.topbar-action{color:var(--green);cursor:pointer;font-size:14px;font-weight:600;font-family:var(--font);background:0 0;border:none}.btn-sm{font-size:12px;font-weight:500;font-family:var(--font);cursor:pointer;border:none;border-radius:20px;padding:7px 14px}.btn-sm-green{background:var(--green);color:#fff}.btn-sm-outline{color:var(--text2);background:#fff;border:1px solid var(--border)!important}@keyframes spin{to{transform:rotate(360deg)}}
