:root{--grad: linear-gradient(135deg, #833ab4 0%, #c13584 28%, #e1306c 55%, #f56040 78%, #fcaf45 100%);--grad-soft: linear-gradient(135deg, rgba(193, 53, 132, .14), rgba(245, 96, 64, .14));--accent: #e1306c;--accent-2: #833ab4;--bg: #f2f2f7;--surface: #ffffff;--surface-2: #ffffff;--text: #0a0a0f;--text-2: #3c3c43;--hint: #8e8e93;--separator: rgba(60, 60, 67, .1);--shadow: 0 1px 2px rgba(16, 18, 33, .04), 0 6px 20px rgba(16, 18, 33, .06);--shadow-lg: 0 8px 30px rgba(16, 18, 33, .14);--glass: rgba(255, 255, 255, .72);--green: #34c759;--orange: #ff9f0a;--red: #ff3b30;--radius: 18px;--radius-sm: 12px;--tap: 44px}[data-theme=dark]{--bg: #0f0f12;--surface: #1c1c20;--surface-2: #26262b;--text: #ffffff;--text-2: #c7c7cc;--hint: #8e8e93;--separator: rgba(255, 255, 255, .1);--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .35);--shadow-lg: 0 10px 34px rgba(0, 0, 0, .5);--glass: rgba(28, 28, 32, .72)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;padding:0;min-height:100%}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.app{max-width:640px;margin:0 auto;position:relative;min-height:100vh}.appbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:12px;padding:calc(env(safe-area-inset-top,0px) + 12px) 16px 12px;background:var(--glass);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--separator)}.appbar h1{font-size:20px;font-weight:700;letter-spacing:-.02em;margin:0;flex:1}.avatar-ring{width:46px;height:46px;border-radius:50%;padding:2.5px;background:var(--grad);flex-shrink:0}.avatar-ring>div{width:100%;height:100%;border-radius:50%;background:var(--surface);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;color:var(--accent);overflow:hidden}.avatar-ring img{width:100%;height:100%;object-fit:cover;border-radius:50%}.content{padding:16px 16px 120px}.section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--hint);margin:22px 4px 10px}.section-title:first-child{margin-top:6px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow)}.card.pad{padding:16px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat{background:var(--surface);border-radius:var(--radius);padding:16px 12px;box-shadow:var(--shadow);text-align:left}.stat .chip{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:10px}.stat .num{font-size:28px;font-weight:800;letter-spacing:-.03em;line-height:1}.stat .lbl{font-size:11.5px;color:var(--hint);margin-top:5px;line-height:1.25}.chip-grad{background:var(--grad-soft);color:var(--accent)}.chip-green{background:#34c75929;color:var(--green)}.chip-blue{background:#007aff29;color:#0a84ff}.hero{border-radius:var(--radius);padding:20px;color:#fff;background:var(--grad);box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.hero:after{content:"";position:absolute;right:-40px;top:-40px;width:160px;height:160px;background:#ffffff29;border-radius:50%}.hero h2{margin:0 0 6px;font-size:19px;font-weight:700}.hero p{margin:0 0 16px;font-size:14px;opacity:.92;line-height:1.4;max-width:80%}.list{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.row{display:flex;align-items:center;gap:14px;padding:13px 16px;min-height:var(--tap);position:relative;cursor:pointer;transition:background .15s ease}.row:active{background:var(--separator)}.row+.row:before{content:"";position:absolute;left:60px;right:0;top:0;height:1px;background:var(--separator)}.row .ico{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--grad-soft);color:var(--accent)}.row .body{flex:1;min-width:0}.row .ttl{font-size:16px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row .sub{font-size:13px;color:var(--hint);margin-top:2px}.row .chev{color:var(--hint);opacity:.5;flex-shrink:0}.toggle{width:51px;height:31px;border-radius:16px;background:#78788052;position:relative;transition:background .25s ease;flex-shrink:0;cursor:pointer}.toggle.on{background:var(--green)}.toggle .knob{position:absolute;top:2px;left:2px;width:27px;height:27px;background:#fff;border-radius:50%;box-shadow:0 2px 6px #0003;transition:transform .25s cubic-bezier(.4,.2,.2,1)}.toggle.on .knob{transform:translate(20px)}.pill{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:5px 11px;border-radius:999px}.pill .dot{width:7px;height:7px;border-radius:50%}.pill.ok{background:#34c75929;color:var(--green)}.pill.ok .dot{background:var(--green)}.pill.expiring{background:#ff9f0a29;color:var(--orange)}.pill.expiring .dot{background:var(--orange)}.pill.error,.pill.disconnected{background:#ff3b3024;color:var(--red)}.pill.error .dot,.pill.disconnected .dot{background:var(--red)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:14px;font-size:16px;font-weight:600;font-family:inherit;padding:14px 20px;cursor:pointer;transition:transform .12s ease,opacity .15s ease;min-height:var(--tap)}.btn:active{transform:scale(.97)}.btn.block{width:100%}.btn-grad{background:var(--grad);color:#fff;box-shadow:0 6px 18px #e1306c52}.btn-white{background:#fff;color:#c13584}.btn-secondary{background:var(--surface-2);color:var(--text)}.btn-ghost{background:transparent;color:var(--accent)}.fab{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:calc(96px + env(safe-area-inset-bottom,0px));width:58px;height:58px;border-radius:19px;border:none;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 22px #e1306c66;z-index:50;cursor:pointer;transition:transform .14s ease}.fab:active{transform:scale(.9) rotate(90deg)}.tabbar{position:fixed;left:50%;transform:translate(-50%);bottom:calc(12px + env(safe-area-inset-bottom,0px));width:calc(100% - 24px);max-width:480px;display:flex;justify-content:space-around;background:var(--glass);backdrop-filter:saturate(180%) blur(22px);-webkit-backdrop-filter:saturate(180%) blur(22px);border:1px solid var(--separator);border-radius:22px;padding:8px 6px;box-shadow:var(--shadow-lg);z-index:60}.tabbar button{flex:1;background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0;cursor:pointer;color:var(--hint);font-family:inherit;font-size:10.5px;font-weight:600;border-radius:14px;transition:color .2s ease}.tabbar button .ti{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:10px;transition:all .25s ease}.tabbar button.active{color:var(--accent)}.tabbar button.active .ti{background:var(--grad);color:#fff;box-shadow:0 4px 10px #e1306c4d}.empty{text-align:center;padding:48px 28px}.empty .blob{width:96px;height:96px;margin:0 auto 20px;border-radius:30px;background:var(--grad-soft);display:flex;align-items:center;justify-content:center;color:var(--accent);position:relative}.empty .blob:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:36px;border:1.5px dashed var(--separator)}.empty h3{font-size:19px;font-weight:700;margin:0 0 8px;letter-spacing:-.02em}.empty p{font-size:14.5px;color:var(--hint);line-height:1.45;margin:0 auto 22px;max-width:300px}.skel{background:linear-gradient(90deg,var(--surface-2) 25%,var(--separator) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:10px}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.fade-up{animation:fadeUp .4s cubic-bezier(.2,.7,.2,1) both}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.screen-enter{animation:screenIn .28s ease-out both}@keyframes screenIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--separator);border-top-color:var(--accent);animation:spin .8s linear infinite;margin:60px auto}@keyframes spin{to{transform:rotate(360deg)}}.row-actions{display:flex;gap:8px;align-items:center}.muted{color:var(--hint);font-size:13px}.field{margin-bottom:14px}.field>label{display:block;font-size:13px;font-weight:600;color:var(--hint);margin:0 4px 7px}.tg-input,.tg-area{width:100%;background:var(--surface);color:var(--text);border:1px solid var(--separator);border-radius:14px;padding:13px 14px;font-size:16px;font-family:inherit;outline:none;transition:border-color .15s ease}.tg-input:focus,.tg-area:focus{border-color:var(--accent)}.tg-area{resize:vertical;min-height:92px;line-height:1.4}.byte{font-size:12px;color:var(--hint);text-align:right;margin:5px 4px 0}.byte.over{color:var(--red)}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.tag{display:inline-flex;align-items:center;gap:6px;background:var(--grad-soft);color:var(--accent);border-radius:999px;padding:6px 12px;font-size:14px;font-weight:500}.tag button{background:none;border:none;color:inherit;font-size:16px;line-height:1;cursor:pointer;padding:0;opacity:.7}.choice{display:flex;align-items:center;gap:13px;padding:13px 16px;cursor:pointer;position:relative}.choice+.choice:before{content:"";position:absolute;left:56px;right:0;top:0;height:1px;background:var(--separator)}.choice .ico{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--grad-soft);color:var(--accent);flex-shrink:0}.choice .ttl{flex:1;font-size:15.5px;font-weight:500}.choice .radio{width:22px;height:22px;border-radius:50%;border:2px solid var(--separator);flex-shrink:0;display:flex;align-items:center;justify-content:center}.choice.sel .radio{border-color:var(--accent);background:var(--accent);color:#fff}.seg{display:flex;background:var(--surface-2);border-radius:12px;padding:3px;gap:3px}.seg button{flex:1;border:none;background:none;font-family:inherit;font-size:13.5px;font-weight:600;color:var(--text-2);padding:9px 6px;border-radius:9px;cursor:pointer;transition:all .18s ease}.seg button.on{background:var(--surface);color:var(--accent);box-shadow:0 1px 4px #0000001f}.step-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-bottom:14px;position:relative}.step-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.step-num{width:28px;height:28px;border-radius:9px;background:var(--grad);color:#fff;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center}.step-head .t{flex:1;font-weight:700;font-size:15px}.icon-btn{background:none;border:none;color:var(--hint);cursor:pointer;padding:6px;border-radius:8px;display:inline-flex}.icon-btn.danger{color:var(--red)}.mini-label{font-size:12px;font-weight:600;color:var(--hint);margin:14px 2px 7px}.btn-add{width:100%;border:1.5px dashed var(--separator);background:transparent;color:var(--accent);border-radius:14px;padding:13px;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}.btn-add:active{background:var(--grad-soft)}.btn-edit{display:flex;gap:8px;align-items:center;margin-bottom:8px}.btn-edit .tg-input{padding:10px 12px;font-size:14px}.save-bar{position:fixed;left:0;right:0;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:var(--glass);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-top:1px solid var(--separator);z-index:70}.constructor-content{padding:16px 16px 110px}
