:root{--primary: #5288c1;--primary-2: #7aa9d9;--primary-glow: rgba(82, 136, 193, .45);--success: #34c759;--danger: #ff453a;--warning: #ff9f0a;--magenta: #c879ff;--bg-0: #06080d;--bg-1: #0a0d14;--surface: rgba(255, 255, 255, .045);--surface-2: rgba(255, 255, 255, .075);--surface-3: rgba(255, 255, 255, .105);--stroke: rgba(255, 255, 255, .08);--stroke-2: rgba(255, 255, 255, .14);--text-0: #ffffff;--text-1: rgba(235, 235, 245, .92);--text-2: rgba(235, 235, 245, .62);--text-3: rgba(235, 235, 245, .38);--r-sm: 12px;--r-md: 18px;--r-lg: 24px;--r-xl: 32px;--shadow-1: 0 1px 0 rgba(255,255,255,.06) inset, 0 0 0 1px rgba(255,255,255,.05);--shadow-glow: 0 8px 40px -10px rgba(82,136,193,.55);--safe-top: env(safe-area-inset-top, 0px);--safe-bot: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;padding:0;height:100%;background:var(--bg-0);color:var(--text-0);font-family:-apple-system,SF Pro Display,Inter,system-ui,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.42;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;overflow:hidden;overscroll-behavior:none}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.app-shell{position:relative;height:100dvh;overflow:hidden;isolation:isolate}.app-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;background:radial-gradient(80% 60% at 12% 8%,rgba(82,136,193,.32),transparent 60%),radial-gradient(70% 50% at 92% 18%,rgba(200,121,255,.22),transparent 65%),radial-gradient(70% 60% at 50% 100%,rgba(52,199,89,.16),transparent 60%),linear-gradient(180deg,#050811,#0a0d18 60%,#050811)}.app-shell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.06 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");mix-blend-mode:overlay;opacity:.6}.orb{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;z-index:-1;pointer-events:none;animation:drift 18s ease-in-out infinite alternate}@keyframes drift{0%{transform:translate(0) scale(1)}to{transform:translate(30px,40px) scale(1.1)}}.glass{background:var(--surface);border:1px solid var(--stroke);border-radius:var(--r-md);backdrop-filter:blur(28px) saturate(160%);-webkit-backdrop-filter:blur(28px) saturate(160%);box-shadow:var(--shadow-1);position:relative;overflow:hidden}.glass:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(180deg,#ffffff14,#fff0 40%);pointer-events:none}.glass-strong{background:var(--surface-2);border:1px solid var(--stroke-2);border-radius:var(--r-lg);backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);box-shadow:0 1px #ffffff1a inset,0 0 0 1px #ffffff0f,0 24px 60px -20px #0009;position:relative;overflow:hidden}.glass-strong:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:radial-gradient(120% 60% at 0% 0%,rgba(255,255,255,.1),transparent 50%),radial-gradient(120% 60% at 100% 100%,rgba(82,136,193,.1),transparent 50%);pointer-events:none}.scroll{height:100%;overflow-y:auto;overflow-x:hidden;padding:calc(var(--safe-top) + 14px) 16px calc(96px + var(--safe-bot));scrollbar-width:none}.scroll::-webkit-scrollbar{display:none}.page-title{font-size:28px;font-weight:700;letter-spacing:-.03em;margin:6px 2px 18px}.page-subtitle{font-size:14px;color:var(--text-2);margin:-10px 2px 16px}.section-header{display:flex;align-items:center;justify-content:space-between;margin:22px 4px 10px}.section-header h3{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-2);margin:0}.section-header .link{font-size:13px;color:var(--primary-2)}.tabbar{position:fixed;left:12px;right:12px;bottom:calc(8px + var(--safe-bot));height:64px;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;background:#14161e8c;border:1px solid var(--stroke-2);border-radius:22px;backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);box-shadow:0 1px #ffffff14 inset,0 24px 50px -20px #000000b3;overflow:hidden}.tabbar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 60%);pointer-events:none}.tab{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:100%;color:var(--text-2);font-size:10.5px;font-weight:500;transition:color .18s ease}.tab svg{width:22px;height:22px}.tab.active{color:var(--text-0)}.tab.active:before{content:"";position:absolute;top:6px;width:36px;height:36px;border-radius:14px;background:radial-gradient(circle,var(--primary-glow),transparent 70%);filter:blur(2px);z-index:-1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 18px;border-radius:16px;font-weight:600;font-size:15px;letter-spacing:-.01em;transition:transform .12s ease,box-shadow .2s ease,background .2s ease;position:relative;overflow:hidden}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(180deg,var(--primary-2),var(--primary));color:#fff;box-shadow:0 1px #ffffff40 inset,0 -1px #0003 inset,0 12px 30px -12px var(--primary-glow)}.btn-primary:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(255,255,255,.15),transparent 50%);pointer-events:none}.btn-ghost{background:var(--surface-2);border:1px solid var(--stroke-2);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);color:var(--text-0)}.btn-ghost:hover{background:var(--surface-3)}.btn-danger{background:linear-gradient(180deg,#ff6b62,var(--danger));color:#fff;box-shadow:0 12px 30px -12px #ff453a8c}.btn-block{width:100%}.btn-lg{height:56px;font-size:16px;border-radius:18px}.btn-icon{width:44px;height:44px;border-radius:14px;background:var(--surface-2);border:1px solid var(--stroke);display:inline-flex;align-items:center;justify-content:center}.card{composes:glass;padding:16px}.list{display:flex;flex-direction:column;gap:10px}.cell{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--stroke);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition:background .15s ease,transform .12s ease}.cell:active{transform:scale(.985)}.cell:hover{background:var(--surface-2)}.cell .meta{margin-left:auto;color:var(--text-2);font-size:13px}.cell .title{font-weight:600;font-size:15px}.cell .sub{color:var(--text-2);font-size:13px}.avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--magenta));display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;flex-shrink:0;box-shadow:0 1px #fff3 inset}.avatar.lg{width:76px;height:76px;font-size:28px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{padding:14px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--stroke);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);position:relative;overflow:hidden}.stat .stat-label{color:var(--text-2);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.stat .stat-value{font-size:28px;font-weight:700;letter-spacing:-.02em;margin-top:4px}.stat .stat-sub{font-size:12px;color:var(--text-3)}.stat.accent:after{content:"";position:absolute;right:-20px;top:-20px;width:100px;height:100px;background:radial-gradient(circle,var(--primary-glow),transparent 70%);border-radius:50%;filter:blur(4px)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:600;letter-spacing:.02em}.badge.success{background:#34c75929;color:#5fd87b;border:1px solid rgba(52,199,89,.3)}.badge.warning{background:#ff9f0a29;color:#ffb04d;border:1px solid rgba(255,159,10,.3)}.badge.danger{background:#ff453a29;color:#ff7a72;border:1px solid rgba(255,69,58,.3)}.badge.info{background:#5288c12e;color:#8ab4dd;border:1px solid rgba(82,136,193,.35)}.badge.muted{background:var(--surface-2);color:var(--text-2);border:1px solid var(--stroke)}.dot{width:6px;height:6px;border-radius:50%;display:inline-block}.dot.success{background:var(--success);box-shadow:0 0 10px var(--success)}.dot.danger{background:var(--danger);box-shadow:0 0 10px var(--danger)}.dot.warning{background:var(--warning);box-shadow:0 0 10px var(--warning)}.progress{height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden;position:relative;border:1px solid var(--stroke)}.progress>i{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-2));border-radius:999px;box-shadow:0 0 16px var(--primary-glow);transition:width .4s ease}.stars{display:inline-flex;gap:2px;align-items:center;color:#ffd76b;font-size:14px}.stars .num{color:var(--text-1);margin-left:6px;font-weight:600}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field label{font-size:13px;color:var(--text-2);padding-left:4px}.input,.textarea{width:100%;height:48px;padding:0 14px;border-radius:14px;background:var(--surface);border:1px solid var(--stroke);color:var(--text-0);outline:none;transition:border-color .18s ease,background .18s ease}.textarea{padding:12px 14px;height:auto;min-height:100px;resize:vertical}.input:focus,.textarea:focus{border-color:var(--primary);background:var(--surface-2);box-shadow:0 0 0 4px #5288c12e}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.segmented{display:flex;padding:4px;background:var(--surface);border:1px solid var(--stroke);border-radius:14px;gap:2px}.segmented button{flex:1;height:36px;border-radius:10px;font-size:13px;font-weight:600;color:var(--text-2);transition:all .18s ease}.segmented button.active{background:var(--surface-3);color:var(--text-0);box-shadow:0 1px #ffffff14 inset}.fab{position:fixed;right:18px;bottom:calc(86px + var(--safe-bot));width:56px;height:56px;border-radius:18px;background:linear-gradient(135deg,var(--primary-2),var(--magenta));display:flex;align-items:center;justify-content:center;z-index:25;box-shadow:0 1px #ffffff4d inset,0 18px 40px -10px #c879ff80,0 6px 20px -8px var(--primary-glow);transition:transform .18s ease}.fab:active{transform:scale(.94)}.fab svg{width:24px;height:24px;color:#fff}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:100;animation:fade .2s ease}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:101;background:#0e1018c7;backdrop-filter:blur(48px) saturate(180%);-webkit-backdrop-filter:blur(48px) saturate(180%);border-top-left-radius:28px;border-top-right-radius:28px;border-top:1px solid var(--stroke-2);padding:14px 16px calc(20px + var(--safe-bot));max-height:88vh;overflow-y:auto;animation:slideUp .28s cubic-bezier(.2,.8,.2,1)}.sheet-handle{width:38px;height:4px;background:#ffffff40;border-radius:999px;margin:4px auto 12px}.sheet h2{font-size:22px;font-weight:700;letter-spacing:-.02em;margin:4px 0 12px}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}.chat-msg{max-width:80%;padding:10px 14px;border-radius:18px;margin-bottom:8px;font-size:14.5px;line-height:1.4}.chat-msg.user{align-self:flex-end;background:linear-gradient(180deg,var(--primary-2),var(--primary));color:#fff;border-bottom-right-radius:6px}.chat-msg.bot{align-self:flex-start;background:var(--surface-2);border:1px solid var(--stroke);border-bottom-left-radius:6px}.row{display:flex;align-items:center;gap:8px}.col{display:flex;flex-direction:column;gap:8px}.spacer{flex:1}.muted{color:var(--text-2)}.tiny{font-size:12px;color:var(--text-3)}.center{text-align:center}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.divider{height:1px;background:var(--stroke);margin:14px 0}.chip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.chip{padding:14px 8px;border-radius:14px;background:var(--surface);border:1px solid var(--stroke);display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--text-1);transition:all .16s ease}.chip svg{width:22px;height:22px;color:var(--primary-2)}.chip.active{background:linear-gradient(180deg,#5288c138,#5288c114);border-color:var(--primary);color:#fff;box-shadow:0 0 0 4px #5288c126}.photo-thumb{width:100%;aspect-ratio:4/3;border-radius:14px;background:var(--surface-2) center/cover no-repeat;border:1px solid var(--stroke);position:relative;overflow:hidden}.photo-thumb.empty{display:flex;align-items:center;justify-content:center;color:var(--text-3);font-size:13px;border-style:dashed}.shimmer{background:linear-gradient(90deg,var(--surface),var(--surface-2),var(--surface));background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:14px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.mood-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.mood{height:90px;border-radius:18px;background:var(--surface);border:1px solid var(--stroke);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:36px}.mood span{font-size:11px;color:var(--text-2);margin-top:4px}.mood.active{background:linear-gradient(180deg,#5288c140,#5288c114);border-color:var(--primary)}.timer{font-variant-numeric:tabular-nums;font-size:56px;font-weight:700;letter-spacing:-.04em;line-height:1;background:linear-gradient(180deg,#fff,var(--primary-2));-webkit-background-clip:text;background-clip:text;color:transparent}.role-pill{position:fixed;top:calc(10px + var(--safe-top));right:14px;z-index:40;background:var(--surface-2);border:1px solid var(--stroke-2);border-radius:999px;padding:4px;display:flex;gap:2px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.role-pill button{padding:4px 12px;border-radius:999px;font-size:11px;font-weight:600;color:var(--text-2);letter-spacing:.04em;text-transform:uppercase}.role-pill button.active{background:var(--primary);color:#fff}
