:root{--u:4px;--bg:#1a2030;--bg-2:#222a3d;--surface:#222a3db8;--surface-2:#2a3349d9;--border:#ffffff14;--border-2:#ffffff24;--text:#e8ecf2;--text-dim:#8a93a8;--text-faint:#5d6680;--accent:#ff8c42;--accent-2:#f06d20;--accent-glow:#ff8c424d;--warn:#f5b454;--danger:#ff6b6b;--good:#4ade80;--r-sm:8px;--r-md:14px;--r-lg:20px;--r-xl:28px;--shadow-1:0 1px 0 #ffffff0a inset, 0 12px 32px -16px #0009;--shadow-glow:0 0 0 1px #ff8c4233, 0 8px 28px -8px #ff8c424d;--ease:cubic-bezier(.16, 1, .3, 1);--t:.18s var(--ease);--fz-xs:clamp(11px, .7vw + 9px, 12px);--fz-sm:clamp(12px, .7vw + 10px, 13px);--fz-md:clamp(14px, .8vw + 12px, 15px);--fz-lg:clamp(16px, 1vw + 13px, 18px);--fz-xl:clamp(20px, 1.4vw + 15px, 24px);--fz-2xl:clamp(26px, 2vw + 18px, 36px)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:Satoshi,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--fz-md);-webkit-font-smoothing:antialiased;font-feature-settings:"ss01", "cv11";padding-bottom:env(safe-area-inset-bottom);line-height:1.5;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(900px 600px at 80% -10%,#ff8c4214,#0000 60%),radial-gradient(700px 500px at -10% 110%,#5082c80f,#0000 55%);position:fixed;inset:0}body:after{content:"";pointer-events:none;opacity:.5;z-index:0;background-image:radial-gradient(#ffffff06 1px,#0000 1px);background-size:3px 3px;position:fixed;inset:0}.num{font-variant-numeric:tabular-nums}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,select,textarea{color:inherit;font-family:inherit}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.nav{z-index:50;-webkit-backdrop-filter:blur(20px)saturate(160%);border-bottom:1px solid var(--border);background:#1a2030bf;position:sticky;top:0}.nav-inner{max-width:1280px;padding:calc(var(--u) * 4) calc(var(--u) * 5);align-items:center;gap:calc(var(--u) * 6);margin:0 auto;display:flex}@media (width<=720px){.nav-inner{padding:calc(var(--u) * 3) calc(var(--u) * 4);justify-content:space-between}}.brand{align-items:center;gap:calc(var(--u) * 2.5);letter-spacing:-.01em;font-weight:700;display:flex}.brand-icon{background:linear-gradient(135deg, var(--accent), var(--accent-2));width:32px;height:32px;box-shadow:0 0 0 1px #ff8c4240, 0 8px 18px -8px var(--accent-glow);border-radius:9px;place-items:center;display:grid}.brand-name{font-size:var(--fz-lg)}.brand-name span{color:var(--accent)}.tabs{gap:4px;margin-left:auto;display:flex;position:relative}.tabs.desktop{display:flex}.tab{padding:calc(var(--u) * 2.5) calc(var(--u) * 4);font-size:var(--fz-sm);color:var(--text-dim);transition:color var(--t), background var(--t);z-index:1;align-items:center;gap:calc(var(--u) * 1.5);border-radius:999px;min-height:40px;font-weight:500;display:flex;position:relative}@media (hover:hover){.tab:hover{color:var(--text)}}.tab.active{color:#1a0f06}.tab-pill{background:linear-gradient(180deg, var(--accent), var(--accent-2));height:100%;transition:transform .38s var(--ease), width .38s var(--ease);z-index:0;box-shadow:0 4px 14px -4px var(--accent-glow);border-radius:999px;position:absolute;top:0;left:0}.tab svg{width:16px;height:16px}.nav-actions{gap:calc(var(--u) * 2);margin-left:auto;display:flex}.icon-btn{background:var(--surface);border:1px solid var(--border);width:40px;height:40px;color:var(--text-dim);transition:var(--t);border-radius:12px;place-items:center;display:grid}@media (hover:hover){.icon-btn:hover{color:var(--text);border-color:var(--border-2);transform:translateY(-1px)}}.mobile-tabs{display:none}@media (width<=720px){.tabs.desktop{display:none}.mobile-tabs{z-index:50;padding:calc(var(--u) * 2) calc(var(--u) * 3) calc(var(--u) * 2 + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(24px)saturate(160%);backdrop-filter:blur(24px)saturate(160%);border-top:1px solid var(--border);background:#1a2030e0;gap:4px;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-tabs .tab{flex-direction:column;flex:1;justify-content:center;gap:2px;min-height:52px;padding:8px 4px;font-size:11px}.mobile-tabs .tab svg{width:20px;height:20px}.mobile-tabs .tab-pill{display:none}.mobile-tabs .tab.active{color:var(--accent);background:#ff8c421a}.mobile-tabs .home-tab{position:relative;overflow:visible}.mobile-tabs .home-tab .home-btn-inner{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#1a0f06;width:48px;height:48px;box-shadow:0 4px 14px -4px var(--accent-glow), 0 0 0 6px #1a2030e0;transition:transform .18s var(--ease);border-radius:50%;place-items:center;margin-top:-24px;margin-bottom:2px;display:grid}.mobile-tabs .home-tab:active .home-btn-inner{transform:scale(.95)}.mobile-tabs .home-tab .home-btn-inner svg{width:22px;height:22px}.mobile-tabs .home-tab.active{color:var(--accent);background:0 0}.mobile-tabs .home-tab.active .home-btn-inner{box-shadow:0 8px 24px -4px var(--accent-glow), 0 0 0 6px #1a2030e0}main{padding-bottom:90px!important}}main{z-index:1;max-width:1280px;padding:calc(var(--u) * 6) calc(var(--u) * 4) calc(var(--u) * 12);margin:0 auto;position:relative}@media (width<=720px){main{padding:calc(var(--u) * 4) calc(var(--u) * 3) 90px}}.view{animation:viewIn .42s var(--ease);display:none}.view.active{display:block}@keyframes viewIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.view-head{justify-content:space-between;align-items:end;gap:calc(var(--u) * 4);margin-bottom:calc(var(--u) * 6);flex-wrap:wrap;display:flex}.view-head h1{font-size:var(--fz-2xl);letter-spacing:-.02em;font-weight:700;line-height:1.1}.view-head .sub{color:var(--text-dim);font-size:var(--fz-sm);margin-top:6px}.view-head .actions{gap:calc(var(--u) * 2);flex-wrap:wrap;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);-webkit-backdrop-filter:blur(16px)saturate(150%);box-shadow:var(--shadow-1);position:relative;overflow:hidden}.card:before{content:"";pointer-events:none;background:linear-gradient(#ffffff0a,#0000 60%);position:absolute;inset:0}.btn{justify-content:center;align-items:center;gap:calc(var(--u) * 2);padding:calc(var(--u) * 2.5) calc(var(--u) * 4);font-size:var(--fz-sm);transition:var(--t);white-space:nowrap;border-radius:12px;min-height:44px;font-weight:500;display:inline-flex}.btn svg{width:16px;height:16px}.btn-primary{background:linear-gradient(180deg, var(--accent), var(--accent-2));color:#1a0f06;box-shadow:0 4px 14px -4px var(--accent-glow), inset 0 1px 0 #fff3;font-weight:700}.btn-primary:hover{box-shadow:0 8px 20px -6px var(--accent-glow), inset 0 1px 0 #ffffff40;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-ghost{background:var(--surface);border:1px solid var(--border);color:var(--text)}.btn-ghost:hover{border-color:var(--border-2);background:var(--surface-2)}.btn-danger{color:var(--danger);background:#ff6b6b1a;border:1px solid #ff6b6b40}.btn-danger:hover{background:#ff6b6b2e}.btn-sm{padding:calc(var(--u) * 2) calc(var(--u) * 3);min-height:36px;font-size:var(--fz-xs)}.field{gap:calc(var(--u) * 1.5);flex-direction:column;display:flex}.field label{font-size:var(--fz-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-weight:500}.input,.select,.textarea{width:100%;padding:calc(var(--u) * 3) calc(var(--u) * 3.5);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:var(--fz-md);transition:var(--t);background:#00000040;min-height:44px}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);background:#0006;outline:none;box-shadow:0 0 0 3px #ff8c421f}.input::placeholder{color:var(--text-faint)}input[type=datetime-local]::-webkit-calendar-picker-indicator{cursor:pointer;transition:var(--t);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff8c42' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4' width='18' height='18' rx='2' ry='2'></rect><line x1='16' y1='2' x2='16' y2='6'></line><line x1='8' y1='2' x2='8' y2='6'></line><line x1='3' y1='10' x2='21' y2='10'></line></svg>");background-position:50%;background-repeat:no-repeat;background-size:18px}input[type=datetime-local]::-webkit-calendar-picker-indicator:hover{opacity:.8}.textarea{resize:vertical;min-height:80px}.select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a93a3' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");background-position:right 14px center;background-repeat:no-repeat;padding-right:36px}.input-group{gap:0;display:flex}.input-group .input{border-top-right-radius:0;border-bottom-right-radius:0}.input-group .unit-toggle{border:1px solid var(--border);border-radius:0 var(--r-md) var(--r-md) 0;background:#00000040;border-left:none;gap:2px;padding:4px;display:flex}.unit-toggle button{padding:0 calc(var(--u) * 2.5);font-size:var(--fz-xs);color:var(--text-dim);transition:var(--t);border-radius:8px;min-width:36px;font-weight:500}.unit-toggle button.on{background:var(--accent);color:#1a0f06;font-weight:700}.preset-chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);font-size:var(--fz-xs);color:var(--text-dim);transition:var(--t);background:#00000040;border-radius:999px;padding:8px 12px;font-weight:500}.chip:hover{color:var(--text);border-color:var(--border-2)}.chip.on{border-color:var(--accent);color:var(--accent);background:#ff8c4226}.vial-grid{gap:calc(var(--u) * 5);grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));display:grid}.vial-card{padding:calc(var(--u) * 5);gap:calc(var(--u) * 4);transition:var(--t);flex-direction:column;display:flex}.vial-card:hover{border-color:var(--border-2);transform:translateY(-2px)}.vial-card-head{justify-content:space-between;align-items:start;gap:calc(var(--u) * 2);display:flex}.vial-name{font-size:var(--fz-lg);letter-spacing:-.01em;width:100%;transition:var(--t);background:0 0;border:none;border-bottom:1px solid #0000;padding:4px 0;font-weight:700}.vial-name:focus{border-bottom-color:var(--accent);outline:none}.vial-menu{color:var(--text-faint);padding:4px}.vial-menu:hover{color:var(--danger)}.vial-body{gap:calc(var(--u) * 4);grid-template-columns:100px 1fr;align-items:center;display:grid}.vial-svg-wrap{aspect-ratio:1/2;width:100%}.vial-stats{gap:calc(var(--u) * 2.5);flex-direction:column;display:flex}.vial-pct{letter-spacing:-.02em;font-size:clamp(28px,3vw,36px);font-weight:700;line-height:1}.vial-pct .label{font-size:var(--fz-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-top:4px;font-weight:500;display:block}.vial-meta{font-size:var(--fz-xs);color:var(--text-dim);flex-direction:column;gap:4px;display:flex}.vial-meta span strong{color:var(--text);font-weight:500}.vial-actions{gap:calc(var(--u) * 2);display:flex}.vial-actions .btn{flex:1}.empty-state{padding:calc(var(--u) * 12) calc(var(--u) * 5);text-align:center;border:1px dashed var(--border-2);border-radius:var(--r-lg);color:var(--text-dim)}.empty-state .ico{width:56px;height:56px;margin:0 auto calc(var(--u) * 4);color:var(--accent);background:#ff8c4214;border-radius:18px;place-items:center;display:grid}.empty-state h3{color:var(--text);font-size:var(--fz-lg);margin-bottom:6px}@media (width<=720px){.vial-grid{gap:calc(var(--u) * 3);grid-template-columns:1fr}.vial-card{padding:calc(var(--u) * 4);gap:calc(var(--u) * 3)}.vial-body{gap:calc(var(--u) * 3);grid-template-columns:72px 1fr}.vial-pct{font-size:clamp(22px,6vw,30px)}.vial-meta{font-size:calc(var(--fz-xs) - 1px)}}.log-controls{gap:calc(var(--u) * 2.5);margin-bottom:calc(var(--u) * 4);flex-wrap:wrap;align-items:center;display:flex}.log-controls .input,.log-controls .select{min-height:40px;padding:8px 12px}.log-controls .field{flex:160px}.summary-row{gap:calc(var(--u) * 3);margin-bottom:calc(var(--u) * 5);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.summary-tile{padding:calc(var(--u) * 4)}.summary-tile .k{font-size:var(--fz-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:6px}.summary-tile .v{font-size:var(--fz-xl);letter-spacing:-.02em;font-weight:700}.summary-tile .v small{color:var(--text-dim);margin-left:4px;font-size:.55em;font-weight:500}.log-table-wrap{border-radius:var(--r-lg);overflow-x:auto}table.log{border-collapse:collapse;width:100%;min-width:600px;font-size:var(--fz-sm)}table.log th,table.log td{padding:calc(var(--u) * 3) calc(var(--u) * 3.5);text-align:left;border-bottom:1px solid var(--border)}@media (width<=720px){table.log th,table.log td{padding:calc(var(--u) * 2)}}table.log th{font-size:var(--fz-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;-webkit-user-select:none;user-select:none;cursor:pointer;transition:var(--t);background:#0003;font-weight:500}table.log th:hover{color:var(--text)}table.log th.sort-asc:after,table.log th.sort-desc:after{content:"";border-left:4px solid #0000;border-right:4px solid #0000;width:0;height:0;margin-left:6px;display:inline-block}table.log th.sort-asc:after{border-bottom:5px solid var(--accent)}table.log th.sort-desc:after{border-top:5px solid var(--accent)}table.log td .pep-pill{font-size:var(--fz-xs);color:var(--accent);background:#ff8c421a;border:1px solid #ff8c4233;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-weight:500;display:inline-flex}table.log tbody tr{transition:var(--t)}table.log tbody tr:hover{background:#ffffff06}table.log td .row-del{color:var(--text-faint);opacity:0;transition:var(--t);padding:4px 6px}table.log tr:hover .row-del{opacity:1}table.log td .row-del:hover{color:var(--danger)}@keyframes rowIn{0%{opacity:0;background:#ff8c422e;transform:translate(-8px)}to{opacity:1;background:0 0;transform:none}}table.log tr.new{animation:rowIn .7s var(--ease)}.calc-grid{gap:calc(var(--u) * 5);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}@media (width<=900px){.calc-grid{grid-template-columns:1fr}}.calc-section{padding:calc(var(--u) * 4);gap:calc(var(--u) * 4);flex-direction:column;display:flex}.calc-section h2{font-size:var(--fz-lg);letter-spacing:-.01em;align-items:center;gap:calc(var(--u) * 2.5);font-weight:700;display:flex}.calc-section h2 .num-badge{width:26px;height:26px;color:var(--accent);background:#ff8c421f;border-radius:8px;place-items:center;font-size:13px;font-weight:700;display:grid}.field-row{gap:calc(var(--u) * 3);grid-template-columns:1fr 1fr;display:grid}@media (width<=600px){.field-row{grid-template-columns:1fr}}.preset-row{flex-wrap:wrap;gap:6px;display:flex}.preset-row .chip{min-height:36px;padding:8px 14px}.results{border-radius:var(--r-lg);padding:calc(var(--u) * 4);gap:calc(var(--u) * 3);background:#ff8c420a;border:1px solid #ff8c422e;flex-direction:column;display:flex;position:relative}.results:before{content:"";pointer-events:none;border-radius:inherit;background:radial-gradient(400px 200px at 50% 0,#ff8c4214,#0000 70%);position:absolute;inset:0}.result-grid{gap:calc(var(--u) * 3);grid-template-columns:repeat(2,1fr);display:grid;position:relative}@media (width<=480px){.result-grid{grid-template-columns:1fr}}.result{padding:calc(var(--u) * 2.5) calc(var(--u) * 3);border:1px solid var(--border);border-radius:var(--r-md);background:#00000040}.result .k{font-size:var(--fz-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.result .v{font-size:var(--fz-xl);letter-spacing:-.02em;font-weight:700;line-height:1.1}.result .v small{color:var(--text-dim);margin-left:4px;font-size:.5em;font-weight:500}.result.headline{background:linear-gradient(#ff8c422e,#ff8c420f);border-color:#ff8c424d;grid-column:1/-1}.result.headline .v{color:var(--accent);font-size:clamp(24px,3vw,32px)}.syringe-vis{padding:calc(var(--u) * 3);border-radius:var(--r-md);border:1px solid var(--border);background:#0000004d}.syringe-vis svg{width:100%;height:auto;display:block}.syringe-callout{margin-top:calc(var(--u) * 3);text-align:center;color:var(--text-dim);font-size:var(--fz-sm)}.syringe-callout strong{color:var(--accent);font-weight:700}.needle-toggle{border:1px solid var(--border);border-radius:var(--r-md);background:#00000040;gap:4px;padding:4px;display:flex}.needle-toggle button{font-size:var(--fz-sm);color:var(--text-dim);transition:var(--t);border-radius:10px;flex:1;padding:10px 12px;font-weight:500}.needle-toggle button.on{background:var(--accent);color:#1a0f06;font-weight:700}.needle-info{padding:calc(var(--u) * 3.5);border:1px solid var(--border);border-radius:var(--r-md);font-size:var(--fz-sm);background:#00000040;line-height:1.6}.needle-info strong{color:var(--accent)}.needle-info .gauge{font-size:var(--fz-xl);letter-spacing:-.01em;color:var(--text);margin-top:4px;font-weight:700;display:block}.modal-bg{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:calc(var(--u) * 4);animation:fade .22s var(--ease);background:#05070cb3;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal-bg.show{display:flex}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:none}}.modal{width:min(560px,100%);max-height:90vh;padding:calc(var(--u) * 6);border-radius:var(--r-xl);background:var(--bg-2);border:1px solid var(--border-2);animation:pop .28s var(--ease);gap:calc(var(--u) * 4);flex-direction:column;display:flex;overflow-y:auto}@media (width<=480px){.modal{padding:calc(var(--u) * 4);border-radius:var(--r-lg)}}.modal h2{font-size:var(--fz-xl);letter-spacing:-.01em;font-weight:700}.modal .modal-foot{gap:calc(var(--u) * 2);margin-top:calc(var(--u) * 2);flex-wrap:wrap;justify-content:flex-end;display:flex}.toast-wrap{z-index:200;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}@media (width<=720px){.toast-wrap{bottom:100px;left:16px;right:16px}}.toast{background:var(--bg-2);border:1px solid var(--border-2);border-radius:var(--r-md);font-size:var(--fz-sm);animation:slideUp .3s var(--ease);pointer-events:auto;align-items:center;gap:10px;padding:12px 16px;display:flex;box-shadow:0 16px 40px -12px #0009}.toast.success{border-color:#ff8c4266}.toast.success:before{content:"";background:var(--accent);width:8px;height:8px;box-shadow:0 0 12px var(--accent);border-radius:50%}.toast.error{border-color:#ff6b6b66}.toast.error:before{content:"";background:var(--danger);border-radius:50%;width:8px;height:8px}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.toast.out{animation:slideOut .22s var(--ease) forwards}@keyframes slideOut{to{opacity:0;transform:translateY(-8px)}}.body-map{gap:calc(var(--u) * 4);grid-template-columns:1fr 1fr;align-items:start;display:grid}@media (width<=540px){.body-map{grid-template-columns:1fr}}.body-map svg{width:100%;max-width:220px;height:auto;margin:0 auto;display:block}.body-map .body-figure{border:1px solid var(--border);border-radius:var(--r-md);padding:calc(var(--u) * 4);text-align:center;background:#00000040}.body-map .body-figure .body-label{font-size:var(--fz-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-top:8px}.site-zone{fill:#ff8c421f;stroke:#ff8c4259;stroke-width:.8px;cursor:pointer;transition:var(--t)}.site-zone:hover{fill:#ff8c4240;stroke:var(--accent)}.site-zone.recent-1{fill:#ff6b6b66;stroke:var(--danger)}.site-zone.recent-2{fill:#f5b4544d;stroke:var(--warn)}.site-zone.recent-3{fill:#f5b4542e;stroke:#f5b45480}.site-zone.suggested{fill:#ff8c4259;stroke:var(--accent);stroke-width:1.5px;animation:2s ease-in-out infinite pulseSuggest}@keyframes pulseSuggest{0%,to{fill:#ff8c4259}50%{fill:#ff8c428c}}.site-zone.selected{fill:var(--accent);stroke:var(--accent);stroke-width:1.5px}.site-legend{font-size:var(--fz-xs);color:var(--text-dim);flex-wrap:wrap;justify-content:center;gap:10px;margin-top:12px;display:flex}.site-legend span{align-items:center;gap:6px;display:inline-flex}.site-legend i{border:1px solid;border-radius:3px;width:10px;height:10px;display:inline-block}.site-rotation-card{padding:calc(var(--u) * 5);margin-bottom:calc(var(--u) * 5)}.site-rotation-card h2{font-size:var(--fz-lg);letter-spacing:-.01em;margin-bottom:calc(var(--u) * 4);align-items:center;gap:calc(var(--u) * 2);font-weight:700;display:flex}.schedule-grid{gap:calc(var(--u) * 4);grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));display:grid}.reminder-card{padding:calc(var(--u) * 5);gap:calc(var(--u) * 3);transition:var(--t);flex-direction:column;display:flex}.reminder-card:hover{border-color:var(--border-2);transform:translateY(-2px)}.reminder-head{justify-content:space-between;align-items:start;gap:calc(var(--u) * 2);display:flex}.reminder-head .pep{font-size:var(--fz-lg);letter-spacing:-.01em;font-weight:700}.reminder-head .freq{font-size:var(--fz-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-top:2px}.reminder-times{flex-wrap:wrap;gap:6px;display:flex}.time-chip{font-size:var(--fz-xs);color:var(--accent);font-variant-numeric:tabular-nums;background:#ff8c421a;border:1px solid #ff8c4240;border-radius:999px;padding:4px 10px;font-weight:500}.reminder-next{border-radius:var(--r-md);font-size:var(--fz-sm);background:#00000040;align-items:center;gap:8px;padding:10px 12px;display:flex}.reminder-next .pulse{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:2s ease-out infinite ping;box-shadow:0 0 #ff8c4299}.reminder-next.due .pulse{background:var(--warn)}.reminder-next.overdue .pulse{background:var(--danger)}@keyframes ping{0%{box-shadow:0 0 #ff8c4299}to{box-shadow:0 0 0 12px #ff8c4200}}.reminder-actions{gap:calc(var(--u) * 2);display:flex}.reminder-actions .btn{flex:1}.reminder-card.paused{opacity:.55}.reminder-card.paused:after{content:"PAUSED";color:var(--text-faint);letter-spacing:.1em;font-size:10px;font-weight:700;position:absolute;top:12px;right:12px}.day-dots{flex-wrap:wrap;gap:4px;display:flex}.day-dot{border:1px solid var(--border);width:28px;height:28px;color:var(--text-dim);cursor:pointer;transition:var(--t);-webkit-user-select:none;user-select:none;background:#0000004d;border-radius:8px;place-items:center;font-size:11px;font-weight:600;display:grid}.day-dot:hover{border-color:var(--border-2);color:var(--text)}.day-dot.on{background:var(--accent);color:#1a0f06;border-color:var(--accent)}.time-input-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.time-input-row input[type=time]{width:auto;min-width:110px}.time-input-row .btn-sm{min-height:32px;padding:6px 10px}.time-input-row .time-tag{font-size:var(--fz-xs);color:var(--accent);font-variant-numeric:tabular-nums;background:#ff8c421f;border:1px solid #ff8c424d;border-radius:999px;align-items:center;gap:6px;padding:4px 8px 4px 12px;font-weight:600;display:inline-flex}.time-input-row .time-tag button{width:16px;height:16px;color:var(--accent);background:#ff8c424d;border-radius:50%;place-items:center;font-size:14px;line-height:0;display:grid}.time-input-row .time-tag button:hover{background:var(--accent);color:#1a0f06}.notif-banner{padding:calc(var(--u) * 4);border-radius:var(--r-md);gap:calc(var(--u) * 3);margin-bottom:calc(var(--u) * 4);background:linear-gradient(#f5b4541f,#f5b4540a);border:1px solid #f5b4544d;align-items:center;display:flex}.notif-banner svg{color:var(--warn);flex-shrink:0}.notif-banner strong{color:var(--text)}.notif-banner.granted{background:linear-gradient(#ff8c4214,#ff8c4205);border-color:#ff8c4240}.notif-banner.granted svg{color:var(--accent)}.notif-banner button{margin-left:auto}@keyframes wave{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes liquidShimmer{0%,to{opacity:.6}50%{opacity:.9}}@media (width<=720px){::-webkit-scrollbar{display:none}*{scrollbar-width:none}}
