.pw-wrap{display:flex;position:relative}.pw-wrap .input{flex:1;padding-right:48px}.pw-toggle{position:absolute;top:50%;right:4px;transform:translateY(-50%)}.pw-rules{color:var(--muted,inherit);gap:4px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.pw-rules li{align-items:center;gap:6px;display:flex}.pw-rules li[data-met=true]{color:var(--ok,inherit);font-weight:600}:root{--forest:#0f2e20;--forest-2:#17402d;--leaf:#247a4c;--leaf-2:#57b37c;--lime:#d5e86a;--papaya:#f28c38;--berry:#c2415d;--sky:#3b82c4;--bg:#f6f2e9;--surface:#fff;--surface-2:#fbf9f3;--ink:#14201a;--muted:#5c6b62;--line:#e4ded0;--tint:#e8f3ec;--on-forest:#f3f7ee;--ok:#1f7a4a;--ok-bg:#dff1e5;--warn:#a35a06;--warn-bg:#fdebd3;--danger:#a5243f;--danger-bg:#fbe1e6;--info:#22659f;--info-bg:#dcebf8;--radius:18px;--radius-sm:12px;--shadow:0 1px 2px #0f2e200f, 0 8px 24px -12px #0f2e202e;--shadow-lg:0 24px 60px -20px #0f2e2066;--font-display:"Fraunces", "Iowan Old Style", Georgia, serif;--font-body:"Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--sel:#0f2e20;--on-sel:#f3f7ee;--tabbar-h:72px;--safe-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b1711;--surface:#12241a;--surface-2:#16291f;--ink:#edf3ea;--muted:#9db0a4;--line:#24382c;--tint:#173325;--ok:#7fd6a4;--ok-bg:#163a27;--warn:#f2b56a;--warn-bg:#3c2a10;--danger:#f49bb0;--danger-bg:#421a25;--info:#8cc1ee;--info-bg:#14293c;--shadow:0 1px 2px #0006, 0 8px 24px -12px #0009;--sel:#2f8f5b;--on-sel:#fff}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.15}h1{font-size:clamp(1.7rem,4vw,2.4rem)}h2{font-size:1.35rem}h3{font-size:1.1rem}p{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img,svg{max-width:100%;display:block}:focus-visible{outline:3px solid var(--leaf-2);outline-offset:2px;border-radius:6px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.row{align-items:center;gap:12px;display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.stack{flex-direction:column;gap:12px;display:flex}.stack.lg{gap:20px}.stack.sm{gap:6px}.grow{flex:1;min-width:0}.grid{gap:14px;display:grid}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-auto{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}.grid.cols-wide{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}.muted{color:var(--muted)}.small{font-size:13px}.tiny{font-size:12px}.strong{font-weight:700}.center{text-align:center}.display{font-family:var(--font-display)}.num{font-variant-numeric:tabular-nums}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mt{margin-top:12px}.mt-lg{margin-top:24px}.hide-mobile{display:none}@media (width>=900px){.hide-mobile{display:initial}.hide-desktop{display:none}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.card.flat{box-shadow:none}.card.tint{background:var(--tint);border-color:#0000}.card.pad-0{padding:0;overflow:hidden}.card-title{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.card-title h3{font-size:1.05rem}.link{color:var(--leaf);align-items:center;gap:4px;font-size:14px;font-weight:700;display:inline-flex}.divider{background:var(--line);border:0;height:1px;margin:12px 0}.btn{white-space:nowrap;background:var(--sel);min-height:46px;color:var(--on-sel);border:1.5px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:15px;font-weight:700;transition:transform .12s,background .15s,box-shadow .15s;display:inline-flex}.btn:hover{background:var(--forest-2)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.primary{background:var(--leaf);color:#fff;box-shadow:0 8px 20px -8px #2f8f5bb3}.btn.primary:hover{background:#277a4d}.btn.lime{background:var(--lime);color:var(--forest)}.btn.ghost{color:var(--ink);border-color:var(--line);background:0 0}.btn.ghost:hover{background:var(--tint)}.btn.ghost.on-dark{color:var(--on-forest);border-color:#ffffff59}.btn.ghost.on-dark:hover{background:#ffffff1f}.btn.danger{background:var(--danger-bg);color:var(--danger)}.btn.sm{min-height:36px;padding:0 14px;font-size:13px}.btn.block{width:100%}.btn.icon{width:44px;padding:0}.btn.icon.sm{width:36px}.badge{background:var(--tint);color:var(--ok);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.danger{background:var(--danger-bg);color:var(--danger)}.badge.info{background:var(--info-bg);color:var(--info)}.badge.neutral{background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}.chip{border:1.5px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:600;display:inline-flex}.chip[aria-pressed=true],.chip.active{background:var(--sel);border-color:var(--sel);color:var(--on-sel)}.chips{scrollbar-width:none;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chips>*{flex:none}.field{flex-direction:column;gap:6px;display:flex}.field>label,.label{color:var(--muted);font-size:13px;font-weight:700}.input,.select,.textarea{border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--surface);width:100%;min-height:46px;color:var(--ink);font:inherit;padding:10px 14px}.textarea{resize:vertical;min-height:96px}.input:focus,.select:focus,.textarea:focus{border-color:var(--leaf);outline:none;box-shadow:0 0 0 4px #2f8f5b2e}.input[aria-invalid=true]{border-color:var(--danger)}.hint{color:var(--muted);font-size:12px}.error{color:var(--danger);font-size:13px;font-weight:600}.form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:14px;display:grid}.seg{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;gap:2px;max-width:100%;padding:4px;display:inline-flex;overflow-x:auto}.seg button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:700}.seg button[aria-selected=true]{background:var(--sel);color:var(--on-sel)}.check{border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--surface);text-align:left;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.check .box{border:2px solid var(--line);color:#0000;border-radius:8px;flex:none;place-items:center;width:24px;height:24px;transition:all .15s;display:grid}.check[aria-pressed=true]{border-color:var(--leaf);background:var(--tint)}.check[aria-pressed=true] .box{background:var(--leaf);border-color:var(--leaf);color:#fff}.check[aria-pressed=true] .check-text{color:var(--muted);text-decoration:line-through}.app{min-height:100dvh}.topbar{z-index:30;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top,0px));background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);align-items:center;gap:12px;display:flex;position:sticky;top:0}.main{padding:16px 16px calc(var(--tabbar-h) + var(--safe-bottom) + 28px);width:100%;max-width:1180px;margin:0 auto}.page{flex-direction:column;gap:20px;animation:.35s backwards rise;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.page-head p{color:var(--muted);margin-top:4px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.page,*{transition:none!important;animation:none!important}}.tabbar{z-index:40;left:12px;right:12px;bottom:calc(10px + var(--safe-bottom));height:var(--tabbar-h);background:var(--forest);box-shadow:var(--shadow-lg);border-radius:26px;justify-content:space-around;align-items:center;max-width:560px;margin:0 auto;padding:0 8px;display:flex;position:fixed}.tabbar a{color:#f3f7eea6;border-radius:18px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:8px 4px;font-size:11px;font-weight:700;transition:color .15s,background .15s;display:flex;position:relative}.tabbar a.active{color:var(--forest);background:var(--lime)}.tabbar .dot{background:var(--papaya);min-width:18px;height:18px;color:var(--forest);border-radius:9px;place-items:center;padding:0 5px;font-size:11px;font-weight:800;display:grid;position:absolute;top:4px;right:calc(50% - 20px)}.sidebar{display:none}@media (width>=900px){.app{grid-template-columns:264px 1fr;display:grid}.tabbar{display:none}.main{padding:28px 36px 60px}.topbar{padding:14px 36px}.sidebar{background:var(--forest);height:100dvh;color:var(--on-forest);flex-direction:column;gap:6px;padding:22px 16px;display:flex;position:sticky;top:0}.sidebar nav{flex-direction:column;flex:1;gap:4px;margin-top:22px;display:flex;overflow-y:auto}.sidebar a{color:#f3f7eeb8;border-radius:14px;align-items:center;gap:12px;padding:11px 14px;font-weight:700;display:flex}.sidebar a:hover{color:#fff;background:#ffffff12}.sidebar a.active{background:var(--lime);color:var(--forest)}.sidebar .dot{background:var(--papaya);min-width:20px;height:20px;color:var(--forest);border-radius:10px;place-items:center;margin-left:auto;padding:0 6px;font-size:12px;font-weight:800;display:grid}}.logo{align-items:center;gap:10px;display:inline-flex}.logo-mark{flex:none;width:38px;height:38px}.logo-mark.logo-img{object-fit:contain;border-radius:50%;width:auto;height:44px}.logo-text{flex-direction:column;line-height:1;display:flex}.logo-text b{font-family:var(--font-display);letter-spacing:.04em;font-size:1.25rem}.logo-text span{letter-spacing:.16em;text-transform:uppercase;opacity:.7;margin-top:3px;font-size:10px;font-weight:700}.hero{color:var(--on-forest);background:radial-gradient(120% 140% at 100% 0%, #d5e86a52, transparent 50%), radial-gradient(90% 90% at 0% 100%, #57b37c59, transparent 55%), var(--forest);box-shadow:var(--shadow-lg);border-radius:26px;padding:26px 22px;position:relative;overflow:hidden}.hero h1{color:#fff}.hero p{color:#f3f7eed1;max-width:46ch}.hero .leaf{opacity:.16;pointer-events:none;width:220px;position:absolute;bottom:-40px;right:-30px}.avatar{width:40px;height:40px;color:var(--forest);background:var(--lime);border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:800;display:grid}.avatar.lg{width:64px;height:64px;font-size:22px}.avatar.sm{width:32px;height:32px;font-size:12px}.list{flex-direction:column;display:flex}.list-item{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:14px 0;display:flex}.list-item:last-child{border-bottom:0}.list-item.click{cursor:pointer}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.stat .v{font-family:var(--font-display);margin-top:4px;font-size:1.9rem;font-weight:700;line-height:1.1}.stat .l{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:700}.stat .d{color:var(--ok);margin-top:4px;font-size:12px;font-weight:700}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:10px;padding:36px 16px;display:flex}.empty .ico{background:var(--tint);width:56px;height:56px;color:var(--leaf);border-radius:50%;place-items:center;display:grid}.icon-tile{background:var(--tint);width:44px;height:44px;color:var(--leaf);border-radius:14px;flex:none;place-items:center;display:grid}.progress{background:var(--tint);border-radius:6px;height:10px;overflow:hidden}.progress>i{background:linear-gradient(90deg, var(--leaf), var(--leaf-2));transform-origin:0;border-radius:6px;height:100%;transition:transform .4s;display:block}.table-wrap{overflow-x:auto}table.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--line);padding:10px 12px;font-size:12px}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px}.scrim{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#09160f8c;justify-content:center;align-items:flex-end;animation:.2s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:560px;max-height:92dvh;padding:22px 20px calc(24px + var(--safe-bottom));border-radius:26px 26px 0 0;animation:.28s cubic-bezier(.2,.8,.2,1) slide;overflow-y:auto}.sheet .grab{background:var(--line);border-radius:3px;width:44px;height:5px;margin:-8px auto 14px}@media (width>=700px){.scrim{align-items:center}.sheet{border-radius:26px}}@keyframes fade{0%{opacity:0}}@keyframes slide{0%{opacity:0;transform:translateY(40px)}}.toasts{z-index:80;left:0;right:0;bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 24px);pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed}.toast{pointer-events:auto;background:var(--forest);color:var(--on-forest);box-shadow:var(--shadow-lg);border-radius:999px;max-width:calc(100vw - 32px);padding:12px 18px;font-weight:600;animation:.25s slide}.toast.error{background:var(--danger);color:#fff}@media (width>=900px){.toasts{bottom:28px}}.chat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;height:calc(100dvh - 190px);min-height:380px;display:flex;overflow:hidden}.chat-log{background:var(--surface-2);flex-direction:column;flex:1;gap:8px;padding:16px;display:flex;overflow-y:auto}.bubble{word-wrap:break-word;overflow-wrap:anywhere;border-radius:18px;max-width:82%;padding:10px 14px;font-size:15px}.bubble.me{background:var(--leaf);color:#fff;border-bottom-right-radius:6px;align-self:flex-end}.bubble.them{background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:6px;align-self:flex-start}.bubble time{opacity:.7;margin-top:3px;font-size:11px;display:block}.bubble img{object-fit:cover;border-radius:12px;max-height:260px;margin-bottom:6px}.chat-input{border-top:1px solid var(--line);background:var(--surface);align-items:flex-end;gap:8px;padding:10px;display:flex}.chat-input .textarea{border-radius:22px;min-height:44px;max-height:120px;padding:10px 16px}.art{aspect-ratio:4/3;color:#fffffff2;place-items:center;display:grid;position:relative;overflow:hidden}.art svg.bg{opacity:.18;width:100%;height:100%;position:absolute;inset:0}.art .glyph{filter:drop-shadow(0 6px 10px #00000040);position:relative}@media (width<=480px){.topbar{gap:6px;padding-inline:10px}.topbar .btn.icon{width:38px;min-height:40px}.topbar .logo-text{display:none}}
