:root{--bg-app: #faf9f7;--bg-app-hi: #ffffff;--bg-card: #ffffff;--bg-muted: #f7f5f1;--bg-muted-2: #f1efea;--text-primary: #1a1a1a;--text-secondary: #6e6a64;--text-tertiary: #9a958d;--text-dark: #24221e;--text-soft: #4a463f;--ink: #1a1a1a;--ink-soft: #2a2823;--selected: var(--ink);--cta: var(--ink);--on-ink: #ffffff;--green: #00b18c;--green-2: #2fb98d;--green-dark: #0f7355;--green-darker: #0a5237;--green-deep: #0f6e52;--green-tint: #e9f6f1;--green-50: #e9f6f1;--green-100: #cfede1;--green-200: #a6dfc9;--green-300: #63c6a2;--green-600: #138a65;--green-700: #0f6e52;--green-900: #063829;--brand: var(--green);--on-brand: #ffffff;--coral: #f2704b;--coral-bg: #fcebe5;--amber: #e8a317;--amber-ink: #9a6a0f;--amber-bg: #fbf1dd;--red: #e24b4a;--red-2: #c43533;--red-soft: #ec8a7f;--red-bg: #fbe9e8;--blue: #2f80c4;--blue-ink: #255f92;--blue-bg: #e6eff7;--border: #e7e4de;--border-2: #efede8;--border-3: #dcd8d0;--border-dashed: #d2cec6;--r-input: 12px;--r-button: 13px;--r-card: 18px;--r-card-lg: 22px;--r-pill: 20px;--r-phone: 46px;--shadow-card: 0 1px 3px rgba(26, 24, 20, .05), 0 24px 48px -32px rgba(26, 24, 20, .28);--shadow-card-sm: 0 1px 2px rgba(26, 24, 20, .05), 0 16px 32px -28px rgba(26, 24, 20, .22);--shadow-primary: 0 6px 16px -8px rgba(26, 26, 26, .3);--shadow-primary-sm: 0 4px 12px -8px rgba(26, 26, 26, .24);--stripe: repeating-linear-gradient(135deg, #edeae4 0 12px, #e4e0d8 12px 24px);--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);background:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#root{min-height:100vh}a{color:var(--green);text-decoration:none}a:hover{color:var(--green-dark)}button{font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#d8d4cc;border-radius:8px}@keyframes shakeX{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}@keyframes popIn{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}@keyframes fadeUp{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:none;cursor:pointer;font-family:inherit;font-weight:800;font-size:14px;padding:13px 18px;border-radius:var(--r-button);transition:filter .12s ease,transform .02s ease;text-decoration:none;line-height:1}.btn:disabled{cursor:not-allowed}.btn:not(:disabled):hover{filter:brightness(1.03)}.btn:not(:disabled):active{transform:translateY(1px)}.btn-block{width:100%}.btn-primary{background:var(--ink);color:#fff;box-shadow:var(--shadow-primary-sm)}.btn-primary:disabled{background:#ece9e3;color:var(--text-tertiary);box-shadow:none}.btn-dark{background:var(--ink);color:#fff}.btn-brand{background:var(--green);color:#fff;box-shadow:var(--shadow-primary-sm)}.btn-brand:disabled{background:#ece9e3;color:var(--text-tertiary);box-shadow:none}.btn-secondary{background:#fff;color:var(--text-dark);border:1.5px solid var(--border-3)}.btn-ghost{background:none;color:var(--text-secondary);padding:9px 13px;box-shadow:none}.btn-danger{background:#fff;color:var(--red);border:1.5px solid #efd4d2}.btn-danger-solid{background:var(--red);color:#fff}.btn-sm{font-size:12.5px;padding:9px 13px}.btn-lg{font-size:15px;padding:15px;border-radius:var(--r-card)}.back-link{border:none;background:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:13px;font-weight:600;padding:0 0 14px;font-family:inherit}.field{margin-bottom:14px}.label{display:block;font-size:12px;font-weight:700;color:var(--text-secondary);margin-bottom:6px}.input{width:100%;border:1px solid var(--border-3);background:var(--bg-muted);border-radius:var(--r-input);padding:12px 14px;font-size:14px;font-family:inherit;color:var(--text-primary);outline:none}.input:focus{border-color:var(--ink);background:#fff}.input::placeholder{color:var(--text-tertiary)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-card-lg);box-shadow:var(--shadow-card-sm)}.card-pad{padding:24px}.card-pad-sm{padding:22px}.card-pad-lg{padding:26px}.pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;padding:4px 10px;border-radius:var(--r-pill);letter-spacing:.02em;white-space:nowrap}.pill-green{color:var(--green-dark);background:var(--green-tint)}.pill-amber{color:var(--amber);background:var(--amber-bg)}.pill-red{color:var(--red-2);background:var(--red-bg)}.pill-blue{color:var(--blue);background:var(--blue-bg)}.pill-gray{color:var(--text-secondary);background:var(--border-2)}.segmented{display:flex;gap:8px}.seg-btn{flex:1;border:1.5px solid var(--border-3);background:#fff;cursor:pointer;font-family:inherit;font-weight:700;font-size:13.5px;padding:11px 12px;border-radius:var(--r-input);color:var(--text-soft)}.seg-btn.active{border-color:var(--ink);background:var(--ink);color:#fff}.spinner{width:22px;height:22px;border:3px solid var(--border-3);border-top-color:var(--green);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.center-fill{min-height:100vh;display:flex;align-items:center;justify-content:center}.error-text{color:var(--red);font-size:12.5px;font-weight:600;margin-top:8px}.muted-note{text-align:center;font-size:12px;color:var(--text-tertiary);font-weight:600;line-height:1.5}.app-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-bottom:1px solid var(--border);background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20}.hdr-right{display:flex;align-items:center;gap:8px}.hdr-menu-btn{display:none}@media(max-width:640px){.app-header{position:static;padding:8px 10px;gap:8px}.hdr-tagline,.hdr-user,.hdr-desktop-only{display:none!important}.hdr-menu-btn{display:flex}.stage-pad{padding:10px 0 28px!important}.stage-pad-cleaner{padding:12px 10px 32px!important}.stage-inner{width:100%!important}.card{border-radius:14px}.card-pad,.card-pad-sm,.card-pad-lg{padding:14px 8px!important}.btn{font-size:13.5px;padding:12px 14px}}.chk-row{display:flex;align-items:flex-start;gap:10px;padding:9px 0;width:100%;text-align:left;border:none;background:none;cursor:pointer;font-family:inherit;border-bottom:1px solid var(--border-2)}.chk-row:last-child{border-bottom:none}.chk-box{flex:none;width:22px;height:22px;border-radius:7px;border:2px solid var(--border-dashed);background:#fff;display:flex;align-items:center;justify-content:center;margin-top:1px}.chk-box.on{border:none;background:var(--green)}.chk-label{flex:1;font-size:14px;line-height:1.35;color:var(--text-dark)}.chk-label.done{color:var(--green-dark);text-decoration:line-through}.chk-marks{display:inline-flex;gap:4px;margin-left:6px;vertical-align:middle}.mark{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:800;padding:1px 6px;border-radius:20px;white-space:nowrap}.mark-req{color:var(--amber);background:var(--amber-bg)}.mark-photo{color:var(--green-dark);background:var(--green-tint)}@media(max-width:640px){.mark-req .mark-text{display:none}.mark-req:before{content:"✳";font-size:11px}}.chk-progress-sticky{position:sticky;top:58px;z-index:15;display:flex;align-items:center;gap:10px;padding:8px 10px;margin-bottom:10px;border-radius:10px;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border)}@media(max-width:640px){.chk-progress-sticky{top:0;border-radius:0;border-left:none;border-right:none;margin-left:-8px;margin-right:-8px;padding:7px 12px}}.chk-progress-track{flex:1;height:6px;border-radius:4px;background:var(--border);overflow:hidden}.chk-progress-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--green-2));transition:width .25s ease}.chk-progress-count{flex:none;font-size:12.5px;font-weight:800;color:var(--green-dark);font-variant-numeric:tabular-nums}.cal-grid{--cal-gap: 5px;--cal-pad: 5px;--cal-daynum-h: 13px;--cal-row-gap: 4px;--cal-lane-h: 7px;--cal-lane-gap: 3px;--cal-lanes: 1;--cal-band-top: calc(1px + var(--cal-pad) + var(--cal-daynum-h) + var(--cal-row-gap));--cal-band-h: calc( var(--cal-lanes) * (var(--cal-lane-h) + var(--cal-lane-gap)) - var(--cal-lane-gap) );display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--cal-gap)}.cal-cell{min-height:72px;min-width:0;overflow:hidden;border-radius:11px;cursor:pointer;padding:var(--cal-pad) var(--cal-pad) 6px;display:flex;flex-direction:column;gap:var(--cal-row-gap);font-family:inherit;text-align:left;background:#fff;border:1px solid var(--border)}.cal-cell.today{border:1.5px solid var(--green);background:var(--green-tint)}.cal-cell.selected{border:1.5px solid var(--text-primary)}.cal-daynum{font-size:12px;font-weight:800;color:var(--text-dark);height:var(--cal-daynum-h);line-height:var(--cal-daynum-h)}.cal-band{height:var(--cal-band-h);flex:none}.cal-lane{position:relative;height:var(--cal-lane-h);align-self:start;z-index:2;pointer-events:none}.cal-ribbon{position:absolute;top:0;bottom:0;background:#c9c4bb}.cal-ribbon.is-start{border-top-left-radius:4px;border-bottom-left-radius:4px}.cal-ribbon.is-end{border-top-right-radius:4px;border-bottom-right-radius:4px}.cal-chip{font-size:9.5px;font-weight:800;padding:2px 4px;border-radius:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--green-tint);color:var(--green-dark);margin-top:2px}.cal-chip.tight{background:var(--red-bg);color:var(--red-2)}.cal-chip.cancelled{background:var(--bg-muted-2);color:var(--text-secondary);text-decoration:line-through}.cal-chip.done{background:var(--green);color:#fff}@media(max-width:640px){.cal-grid{--cal-gap: 4px;--cal-pad: 4px;--cal-lane-h: 6px;--cal-lane-gap: 2px}.cal-cell{padding-bottom:5px;border-radius:9px}.cal-chip{align-self:flex-start;width:7px;height:7px;padding:0;border-radius:50%;background:var(--green);text-indent:-9999px}.cal-chip.tight{background:var(--red)}.cal-chip.done{background:var(--green-dark);box-shadow:0 0 0 2px #1f9d6b47}.cal-chip.cancelled{background:#c9c4bb}}.up-row{display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:12px;padding:11px 14px;background:var(--bg-muted)}.up-date{flex:none;width:38px;text-align:center}.up-name{font-size:14.5px;font-weight:700;line-height:1.25}.up-window{font-size:12.5px;color:var(--text-secondary);margin-top:2px;line-height:1.35}@media(max-width:640px){.up-row{padding:10px 11px;gap:10px}.up-date{width:32px}.up-name{font-size:14px}}.cal-more{font-size:9px;color:#9a958d;font-weight:700}.up-pill{flex:none;white-space:nowrap}@media(max-width:640px){.up-pill-text,.cal-more{display:none}}@media(max-width:640px){.mgr-nav{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.mgr-nav::-webkit-scrollbar{display:none}.mgr-nav>button{flex:none;white-space:nowrap;padding:9px 13px;font-size:13px}}.lb-close{position:fixed;top:max(12px,env(safe-area-inset-top));right:12px;z-index:81;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;cursor:pointer;color:#fff;background:#ffffff29;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .12s ease}.lb-close:hover{background:#ffffff47}.login-page{--lg-bg: #070a0c;--lg-line: rgba(255, 255, 255, .11);--lg-text: #f5f7f8;--lg-muted: #9aa5ac;--lg-brand: #00c7a2;position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:auto;color:var(--lg-text);background:radial-gradient(circle at 15% 12%,rgba(0,199,162,.12),transparent 30%),radial-gradient(circle at 85% 8%,rgba(0,199,162,.07),transparent 34%),var(--lg-bg)}.login-head{width:min(1240px,calc(100% - 40px));margin-inline:auto;height:76px;display:flex;align-items:center;justify-content:space-between}.login-langs{display:inline-flex;padding:4px;border:1px solid var(--lg-line);border-radius:11px;background:#ffffff08}.login-langs button{min-width:38px;height:30px;padding:0 10px;border:0;border-radius:8px;color:var(--lg-muted);background:transparent;font:inherit;font-size:12.5px;font-weight:800;cursor:pointer}.login-langs button.active{color:#06110e;background:var(--lg-brand)}.login-body{width:min(1240px,calc(100% - 40px));margin-inline:auto;padding:20px 0 56px;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;min-height:calc(100vh - 76px)}.login-eyebrow{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--lg-muted);border-left:3px solid var(--lg-brand);padding-left:11px}.login-title{font-size:clamp(34px,4.6vw,56px);line-height:1.06;letter-spacing:-.035em;font-weight:800;margin:18px 0 0;text-wrap:balance}.login-title span{color:var(--lg-brand)}.login-lede{color:var(--lg-muted);font-size:16px;margin:16px 0 0;max-width:46ch}.login-benefits{display:flex;flex-direction:column;gap:16px;margin-top:34px}.login-benefit{display:flex;gap:14px;align-items:flex-start}.login-benefit-n{flex:none;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:800;color:var(--lg-brand);background:#00c7a21a;border:1px solid rgba(0,199,162,.22)}.login-benefit strong{display:block;font-size:14.5px;font-weight:800}.login-benefit span{display:block;font-size:13.5px;color:var(--lg-muted);margin-top:2px}.login-card{background:#ffffff0d;border:1px solid var(--lg-line);border-radius:24px;padding:38px 34px 30px;box-shadow:0 32px 90px #0000006b;text-align:center}.login-card h2{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:22px 0 0}.login-card .sub{color:var(--lg-muted);font-size:14px;margin:7px 0 26px}.login-field{text-align:left;margin-bottom:16px}.login-field label{display:block;font-size:13px;font-weight:700;margin-bottom:7px}.login-input-wrap{position:relative}.login-input-wrap svg.ico{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:#7f8a90;pointer-events:none}.login-page input[type=email],.login-page input[type=password],.login-page input[type=text]{width:100%;height:52px;padding:0 46px 0 44px;border:1px solid rgba(255,255,255,.13);border-radius:12px;outline:none;background:#ffffff05;color:var(--lg-text);font:inherit;font-size:14.5px}.login-page input::placeholder{color:#727d83}.login-page input:focus{border-color:#00c7a29e;box-shadow:0 0 0 3px #00c7a21a;background:#ffffff0a}.login-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;border-radius:9px;background:transparent;color:#7f8a90;cursor:pointer;display:flex;align-items:center;justify-content:center}.login-eye:hover{color:var(--lg-text);background:#ffffff0f}.login-submit{width:100%;min-height:54px;border:0;border-radius:13px;color:#06110e;background:linear-gradient(135deg,#16d7b0,#00a684);font:inherit;font-size:15px;font-weight:800;cursor:pointer;margin-top:6px;transition:transform .12s ease,box-shadow .12s ease}.login-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 34px #00000057}.login-submit:disabled{opacity:.6;cursor:default}.login-error{background:#ff6b6b1a;border:1px solid rgba(255,107,107,.35);color:#ff9d9d;border-radius:11px;padding:10px 12px;font-size:13.5px;font-weight:600;margin-bottom:16px;text-align:left}.login-foot{border-top:1px solid var(--lg-line);margin-top:24px;padding-top:18px;font-size:13.5px;color:var(--lg-muted)}.login-foot a{color:var(--lg-brand);font-weight:700;text-decoration:none}.login-foot a:hover{text-decoration:underline}.login-hint{font-size:12.5px;color:#6f7a80;margin-top:18px;text-align:center}@media(max-width:900px){.login-body{grid-template-columns:1fr;gap:34px;padding-top:8px}.login-intro{text-align:left}.login-card{padding:30px 22px 24px}}.admin-shell{flex:1;display:grid;grid-template-columns:272px minmax(0,1fr);gap:22px;width:100%;padding:22px 20px 56px;align-items:start}.admin-shell.has-aside{grid-template-columns:272px minmax(0,1fr) 320px}.admin-nav{position:sticky;top:18px;background:#fff;border:1px solid var(--border);border-radius:16px;padding:12px 10px}.admin-nav-brand{display:flex;align-items:center;gap:8px;padding:4px 10px 14px;border-bottom:1px solid var(--border);margin-bottom:8px}.admin-nav-brand img{height:22px;display:block}.admin-nav-brand span{font-size:12px;color:var(--text-tertiary);font-weight:700;letter-spacing:.02em}.admin-nav a{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:10px;font-size:13.5px;font-weight:700;color:var(--text-secondary);text-decoration:none;cursor:pointer}.admin-nav a:hover{background:var(--bg-muted);color:var(--text-primary)}.admin-nav a.active{background:var(--ink, #1a1a1a);color:#fff}.admin-nav a.active svg{color:#fff}.admin-nav svg{flex:none;color:#9a958d}.admin-nav-note{font-size:11px;color:var(--text-tertiary);font-weight:600;line-height:1.4;padding:10px 11px 4px;border-top:1px solid var(--border);margin-top:8px}.admin-main{min-width:0}.admin-h1{font-size:24px;font-weight:800;letter-spacing:-.02em}.admin-sub{font-size:13.5px;color:var(--text-secondary);margin:3px 0 20px}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:18px}.admin-stat{background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px 16px}.admin-stat .lbl{font-size:11.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary)}.admin-stat .val{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-top:2px}.admin-stat .sub{font-size:12px;color:var(--text-secondary);font-weight:600}@media(max-width:860px){.admin-shell{grid-template-columns:1fr}.admin-nav{position:static;display:flex;flex-wrap:wrap;gap:4px}.admin-nav-brand,.admin-nav-note{display:none}.admin-nav a{padding:8px 12px}}.admin-aside{position:sticky;top:18px;background:#fff;border:1px solid var(--border);border-radius:16px;padding:16px;min-height:220px}.admin-aside-empty{border:1.5px dashed var(--border-3);border-radius:12px;padding:18px 14px;text-align:center;font-size:12.5px;color:var(--text-tertiary);font-weight:600;line-height:1.5}@media(max-width:1200px){.admin-shell.has-aside{grid-template-columns:272px minmax(0,1fr)}.admin-aside{display:none}}@media(max-width:860px){.admin-shell.has-aside{grid-template-columns:1fr}}.admin-nav-user{border-top:1px solid var(--border);margin-top:10px;padding-top:12px}.admin-nav-who{display:flex;align-items:center;gap:9px;padding:0 10px 10px}.admin-nav-avatar{flex:none;width:32px;height:32px;border-radius:10px;background:var(--bg-muted-2, #efede8);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:var(--text-dark)}.admin-nav-who .nm{font-size:13px;font-weight:800;line-height:1.2}.admin-nav-who .rl{font-size:11.5px;color:var(--text-tertiary);font-weight:700}.admin-nav-act{display:flex;align-items:center;gap:8px;width:100%;padding:8px 11px;border:0;border-radius:10px;background:transparent;color:var(--text-secondary);font:inherit;font-size:13px;font-weight:700;cursor:pointer;text-align:left}.admin-nav-act:hover{background:var(--bg-muted);color:var(--text-primary)}.admin-nav-langs{display:flex;gap:4px;padding:8px 11px 0}.admin-nav-langs button{flex:1;height:28px;border:1px solid var(--border-3);border-radius:8px;background:#fff;font:inherit;font-size:11.5px;font-weight:800;color:var(--text-secondary);cursor:pointer}.admin-nav-langs button.active{background:var(--ink);border-color:var(--ink);color:#fff}.admin-shell,.admin-aside{--bg-muted: #f6f7f9;--bg-muted-2: #eef0f3;--border: #e5e8ec;--border-2: #eceef1;--border-3: #d8dde3}.admin-shell .input,.admin-aside .input{background:#fff;border-color:#d8dde3}.admin-shell .input:focus,.admin-aside .input:focus{border-color:var(--ink);box-shadow:0 0 0 3px #1a1a1a0f}.admin-nav{height:calc(100vh - 44px);display:flex;flex-direction:column;overflow:hidden}.admin-nav-scroll{overflow-y:auto;min-height:0}.admin-nav-user{margin-top:auto}@media(max-width:860px){.admin-nav{height:auto;display:flex;flex-direction:row;flex-wrap:wrap;overflow:visible}.admin-nav-scroll{display:contents}.admin-nav-user{margin-top:0;width:100%}}.usr-group{border:1px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:10px}.usr-group-head{display:flex;align-items:center;gap:8px;padding:10px 13px;background:var(--bg-muted);border-bottom:1px solid var(--border)}.usr-group-head .nm{font-size:13px;font-weight:800}.usr-group-head .ct{font-size:11.5px;color:var(--text-tertiary);font-weight:700}.usr-group-body{padding:8px;display:flex;flex-direction:column;gap:6px}.usr-nested{margin-left:14px;border-left:2px solid var(--border-2);padding-left:10px}
