:root{--bg0:#f3f6f4;--bg1:#e7eee9;--ink:#0b1f1c;--ink-soft:#3a524c;--muted:#6b8179;--line:#0b1f1c1f;--accent:#1f6f5b;--accent-2:#0e4a3c;--danger:#9b2c2c;--panel:#ffffffb8;--shadow:0 18px 50px #0b1f1c14;--radius:18px;--font-display:"Fraunces", Georgia, serif;--font-body:"Manrope", system-ui, sans-serif;--mono:ui-monospace, "Cascadia Code", "SF Mono", Menlo, monospace}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--ink);font-family:var(--font-body);background:radial-gradient(1200px 600px at 10% -10%, #1f6f5b24, transparent 55%), radial-gradient(900px 500px at 100% 0%, #0b1f1c14, transparent 50%), linear-gradient(165deg, var(--bg0), var(--bg1));background-attachment:fixed;margin:0}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}h1,h2,.display{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-weight:700}.display{font-size:clamp(2.4rem,5vw,3.4rem);line-height:1.05}.display.sm{font-size:clamp(1.8rem,3vw,2.4rem)}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--accent);margin:0 0 .35rem;font-size:.72rem;font-weight:600}.lede{color:var(--ink-soft);max-width:36rem;line-height:1.55}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:var(--mono);font-size:.92rem}.page-center{place-items:center;min-height:100vh;display:grid}.login-shell{place-items:center;min-height:100vh;padding:2rem;display:grid}.login-panel{border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:min(420px,100%);box-shadow:var(--shadow);padding:2.2rem;animation:.55s both rise}.stack{gap:1rem;margin-top:1.5rem;display:grid}.field{gap:.4rem;display:grid}.field.inline{grid-template-columns:1fr auto;align-items:center}.field span{color:var(--ink-soft);font-size:.82rem;font-weight:600}input,select,textarea{border:1px solid var(--line);width:100%;font:inherit;color:var(--ink);background:#fff;border-radius:12px;padding:.75rem .9rem}input[type=color]{cursor:pointer;width:48px;height:40px;padding:.2rem}input[type=range]{padding:0}input:focus,select:focus,button:focus-visible{outline-offset:2px;outline:2px solid #1f6f5b59}.btn{appearance:none;border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;background:#fff;border-radius:999px;justify-content:center;align-items:center;gap:.35rem;padding:.7rem 1.15rem;font-weight:600;text-decoration:none;transition:transform .15s,background .15s,border-color .15s;display:inline-flex}.btn:hover{border-color:#1f6f5b59;transform:translateY(-1px)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#f4faf7}.btn.primary:hover{background:var(--accent-2)}.btn.ghost{background:0 0}.btn.danger{color:var(--danger);border-color:#9b2c2c40}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.error{color:var(--danger);margin:.5rem 0 0}.app-shell{width:min(1100px,100% - 2rem);margin:0 auto;padding:2rem 0 4rem;animation:.45s both rise}.topbar{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem;display:flex}.create-block,.designer-section,.stats-grid>div,.links-section{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1.25rem;padding:1.25rem 1.4rem}.create-block h2,.designer-section h2,.stats-grid h2{margin-bottom:.85rem;font-size:1.25rem}.create-form{flex-wrap:wrap;align-items:end;gap:.85rem;display:flex}.field.grow{flex:280px}.link-list{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.link-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:1rem;padding:1rem 0;display:flex}.link-list li:last-child{border-bottom:0;padding-bottom:0}.link-list li.inactive{opacity:.55}.link-title{font-size:1.05rem;font-weight:700;text-decoration:none}.link-title:hover{color:var(--accent)}.short{color:var(--accent-2);margin:.25rem 0}.truncate{text-overflow:ellipsis;white-space:nowrap;max-width:42ch;margin:0;overflow:hidden}.link-meta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.4rem;display:flex}.stat{color:var(--muted);margin-right:.35rem;font-size:.85rem}.empty{color:var(--muted);margin:0}.row.gap{flex-wrap:wrap;gap:.5rem;display:flex}.designer{grid-template-columns:minmax(280px,340px) 1fr;align-items:start;gap:1.5rem;display:grid}.preview-pane{position:sticky;top:1rem}.preview-frame{border:1px solid var(--line);background:linear-gradient(135deg,#1f6f5b14,#0000),#fff;border-radius:16px;place-items:center;min-height:340px;padding:1rem;display:grid}.export-row{flex-wrap:wrap;gap:.5rem;margin-top:.9rem;display:flex}.controls{gap:1rem;display:grid}fieldset{border:1px solid var(--line);border-radius:14px;gap:.75rem;margin:0;padding:1rem;display:grid}legend{font-family:var(--font-display);padding:0 .35rem;font-weight:600}.check{align-items:center;gap:.5rem;font-size:.92rem;display:flex}.check input{width:auto}.big-stat{text-align:right}.big-stat .num{font-family:var(--font-display);color:var(--accent-2);font-size:2.6rem;line-height:1;display:block}.big-stat .label{color:var(--muted);font-size:.85rem}.stats-grid{grid-template-columns:1.4fr 1fr;gap:1.25rem;display:grid}.day-bars{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.day-bars li{grid-template-columns:3.2rem 1fr 2rem;align-items:center;gap:.55rem;display:grid}.day-label,.day-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem}.bar-track{background:#0b1f1c0f;border-radius:999px;height:10px;overflow:hidden}.bar-fill{background:linear-gradient(90deg, var(--accent), #3d9b82);border-radius:inherit;min-width:0;height:100%;transition:width .35s}.device-list{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.device-list li{border-bottom:1px solid var(--line);justify-content:space-between;padding:.65rem 0;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (width<=860px){.designer,.stats-grid{grid-template-columns:1fr}.preview-pane{position:static}.link-list li{flex-direction:column}.link-meta{justify-content:flex-start}.topbar{flex-direction:column}.big-stat{text-align:left}}
