@import url("https://fonts.googleapis.com/css2?family=Sniglet:wght@400;800&family=Fira+Code:wght@400;700&display=swap");:root{--bg:#fdf6f5;--text:#3a1c28;--border:#dcaebd;--backdrop-bg:#dcaebd;--link:#c91c71;--card-bg:#ffffff;--button-bg:#f4e1e6;--font-body:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-heading:"Georgia","Times New Roman",serif;--shadow:0 10px 40px rgba(0,0,0,0.1);--muted:rgba(58,28,40,0.7);--mono:"Fira Code",ui-monospace,SFMono-Regular,Menlo,monospace;--danger:#9a234f;--success:#8a1652;--focus-ring:0 0 0 4px color-mix(in srgb,var(--link) 14%,transparent)}html[data-theme=dark]{--bg:#1f0d14;--text:#fdf6f5;--border:#4a2232;--backdrop-bg:#4a2232;--link:#f06292;--card-bg:#341722;--button-bg:#3a1c28;--shadow:0 12px 44px rgba(0,0,0,0.32);--muted:rgba(253,246,245,0.72);--danger:#ff94b5;--success:#ff7cab}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{background:var(--backdrop-bg);color:var(--text);font-family:var(--font-body);line-height:1.45}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}:focus-visible{outline:none;box-shadow:var(--focus-ring)}code{font-family:var(--mono);font-size:.92em}.app{min-height:100vh;position:relative;padding:32px 20px 96px}.container{width:min(1160px,100%);margin:0 auto}.hero{position:relative;padding:20px 0 22px;border-bottom:1px solid var(--border);margin-bottom:18px}.eyebrow{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--link);text-transform:uppercase;letter-spacing:2px;margin-bottom:10px}.hero h1{font-family:var(--font-heading);font-style:italic;font-size:clamp(34px,6vw,58px);line-height:.98;margin:0}.hero-copy{max-width:72ch;margin-top:12px;color:var(--muted);font-size:15px}.header-meta{position:absolute;top:12px;right:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.header-links{display:flex;gap:8px}.header-link,.pill{font-family:var(--mono);font-size:12px;letter-spacing:1px;text-transform:uppercase;border:1px solid var(--border);background:color-mix(in srgb,var(--card-bg) 70%,var(--button-bg));padding:8px 10px;border-radius:999px}.auth-cluster{display:flex;align-items:center;gap:8px}.theme-label{font-family:var(--mono);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}.theme-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;overflow:hidden;width:52px;height:32px;border-radius:999px;border:1px solid var(--border);background:linear-gradient(90deg,#efefef 0 50%,#2a2a2a 50% 100%);background-size:200% 100%;background-position:0 0;position:relative;transition:background-position .18s ease,border-color .18s ease,box-shadow .18s ease;box-shadow:inset 0 1px 2px rgba(0,0,0,.08);cursor:pointer}.theme-toggle:hover{box-shadow:inset 0 1px 2px rgba(0,0,0,.12),0 0 8px rgba(201,28,113,.2)}.theme-toggle:before{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#dcaebd;transition:transform .18s ease,background .18s ease;box-shadow:0 2px 4px rgba(0,0,0,.1)}html[data-theme=dark] .theme-toggle{background-position:-100% 0}html[data-theme=dark] .theme-toggle:before{transform:translateX(20px);background:#f4a4c0;box-shadow:0 2px 4px rgba(0,0,0,.3)}.summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:16px}.summary-item{border-radius:12px;box-shadow:var(--shadow);border:1px solid var(--border);background:var(--card-bg);padding:14px 16px;display:grid;grid-gap:6px;gap:6px}.summary-label{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--link);text-transform:uppercase;letter-spacing:1px}.summary-item strong{font-family:Sniglet,cursive;font-size:clamp(22px,4vw,34px);font-weight:800}.toolbar{display:grid;grid-template-columns:minmax(0,1.3fr) auto auto minmax(0,auto);grid-gap:12px;gap:12px;align-items:center;margin-bottom:14px}.search-shell{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--card-bg);box-shadow:var(--shadow)}.search-shell .sigil{color:var(--link);font-family:var(--mono);font-size:14px;font-weight:700}.search-input{width:100%;border:0;outline:none;background:transparent;color:var(--text)}.toolbar-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.toolbar-passive{grid-column:span 3;justify-content:flex-end}.action-btn,.btn,.mini-btn,.modal-btn{border-radius:8px;background:var(--button-bg);border:1px solid var(--border);color:var(--text);min-height:44px;padding:0 14px;font-weight:600;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease,background .12s ease}.mini-btn{min-height:38px}.action-btn:hover,.btn:hover,.mini-btn:hover,.modal-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(0,0,0,.08);border-color:var(--link)}.action-btn,.btn-primary{font-family:Sniglet,cursive;color:var(--link)}.board-panel{border-radius:12px;box-shadow:var(--shadow);border:1px solid var(--border);background:var(--card-bg);padding:14px}.habit-list{display:grid;grid-gap:14px;gap:14px}.empty-state{border-radius:12px;border:1px dashed var(--border);padding:32px 20px;text-align:center;color:var(--muted)}.empty-state.subtle{background:color-mix(in srgb,var(--card-bg) 84%,var(--button-bg))}.habit-card{border-radius:12px;box-shadow:var(--shadow);border:1px solid var(--border);background:var(--card-bg);overflow:clip}.habit-head{width:100%;padding:16px;display:flex;justify-content:space-between;gap:18px;align-items:center;border:0;background:transparent;text-align:left;color:inherit}.habit-head-main{min-width:0}.habit-name{font-family:Sniglet,cursive;font-size:20px;font-weight:400;opacity:.95;margin:0;overflow-wrap:anywhere}html[data-theme=dark] .habit-name{color:#f4a4c0}.habit-note{margin-top:6px;color:#c4cdda;font-size:14px}.habit-head-side{display:flex;align-items:center;gap:10px;flex-shrink:0}.timer{font-family:Sniglet,cursive;font-weight:800;font-size:clamp(18px,2.5vw + 12px,28px);color:var(--link);letter-spacing:1px;white-space:nowrap}.chevron{color:var(--muted);font-size:18px;transition:transform .15s ease}.habit-card[data-open=true] .chevron{transform:rotate(180deg)}.tabs{display:flex;min-height:48px;overflow-x:auto;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--button-bg) 58%,var(--card-bg))}.tab-label{display:inline-flex;align-items:center;justify-content:center;padding:0 16px;min-height:48px;font-family:var(--mono);font-size:14px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;border:0;border-right:1px solid var(--border);background:transparent}.habit-card[data-active-tab=breaches] .tab-label:nth-child(2),.habit-card[data-active-tab=stats] .tab-label:first-child{background:var(--card-bg);color:var(--link);box-shadow:inset 0 -3px 0 var(--link)}.habit-body{display:none;padding:16px}.habit-card[data-open=true] .habit-body,.tab-panel{display:block}.meta-grid{border-left:5px solid var(--link);padding-left:25px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.edit-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stretch-2{grid-column:span 2}.meta-tile{border-radius:12px;border:1px solid var(--border);background:color-mix(in srgb,var(--card-bg) 82%,var(--button-bg));padding:12px}.meta-key{display:block;font-family:var(--mono);font-size:13px;font-weight:700;color:var(--link);margin-bottom:8px}.meta-value{font-size:15px;overflow-wrap:anywhere}.field-tile{display:grid;grid-gap:8px;gap:8px}.edit-breach-item input,.field input,.field textarea,.field-tile input,.field-tile select,.field-tile textarea{width:100%;border-radius:12px;border:1px solid var(--border);background:var(--bg);color:var(--text);padding:12px 14px;outline:none}.compact-field input,.compact-field select{min-height:46px}.field textarea,.field-tile textarea{min-height:110px;resize:vertical}.tally-zone{margin-top:16px}.tally-topline{display:flex;justify-content:space-between;gap:12px;align-items:end;margin-bottom:10px}.tally-groups{display:flex;flex-wrap:wrap;gap:14px}.tally-group{display:flex;align-items:flex-end;gap:8px;min-height:28px;position:relative;padding-right:4px}.tally-mark{width:2px;height:24px;background:var(--text);border-radius:1px;display:inline-block}html[data-theme=dark] .tally-mark.base{background:#f3bfd1}.tally-group.complete .tally-mark.base{opacity:.4}.tally-mark.slash{width:2px;height:32px;background:var(--link);transform:rotate(-75deg);transform-origin:center center;position:absolute;left:15px;bottom:-4px}.action-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.action-btn.danger,.mini-btn{color:var(--danger)}.breaches-list{display:grid;grid-gap:10px;gap:10px}.breach-item{border-radius:12px;border:1px solid var(--border);background:color-mix(in srgb,var(--card-bg) 82%,var(--button-bg));padding:12px 14px;display:flex;justify-content:space-between;gap:10px;align-items:center}.edit-breach-item{grid-template-columns:auto 1fr auto;display:grid}.breach-label{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--link)}.inline-faint{color:var(--muted)}.dialog-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(58,28,40,.35);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20}.dialog{width:min(560px,100%);border-radius:12px;box-shadow:var(--shadow);border:1px solid var(--border);background:var(--card-bg);overflow:clip}.wide-dialog{width:min(880px,100%)}.dialog-footer,.dialog-header{padding:14px 16px;border-bottom:1px solid var(--border)}.dialog-footer{border-bottom:0;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px}.dialog-title{font-family:var(--font-heading);font-size:28px;font-style:italic;margin:0}.dialog-body{padding:16px}.raw-editor{min-height:420px;font-family:var(--mono);font-size:13px}.field{display:grid;grid-gap:8px;gap:8px;margin-bottom:14px}.field label{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--link);text-transform:uppercase;letter-spacing:1px}.status-bar{position:fixed;left:0;right:0;bottom:0;z-index:15;min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 20px;background:color-mix(in srgb,var(--card-bg) 88%,var(--button-bg));border-top:1px solid var(--border);box-shadow:0 -8px 30px rgba(0,0,0,.08)}.status-bar[data-tone=error] .status-text{color:var(--danger)}.status-bar[data-tone=success] .status-text{color:var(--success)}.status-bar[data-tone=warn] .status-text{color:var(--link)}.status-text{font-family:var(--mono);font-size:13px;color:var(--muted)}.status-actions{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:12px;text-transform:uppercase}.error-shell{margin-bottom:16px}.error-card{border-radius:12px;box-shadow:var(--shadow);border:1px solid color-mix(in srgb,var(--danger) 50%,var(--border));background:color-mix(in srgb,var(--card-bg) 86%,var(--button-bg));padding:16px 18px}.error-card h2{margin:8px 0;font-family:var(--font-heading);font-style:italic}.error-card p{margin:0;color:var(--muted)}.hidden{display:none!important}@media (max-width:1100px){.edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stretch-2{grid-column:span 1}}@media (max-width:900px){.toolbar{grid-template-columns:1fr 1fr}.toolbar-actions,.toolbar-passive{grid-column:1/-1;justify-content:flex-start}.edit-grid,.meta-grid,.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.app{padding-left:14px;padding-right:14px;padding-bottom:180px}.header-meta{position:static;margin-top:14px;justify-content:flex-start}.edit-grid,.meta-grid,.summary-strip,.toolbar{grid-template-columns:1fr}.habit-head{flex-direction:column;align-items:flex-start}.habit-head-side{width:100%;justify-content:space-between}.status-bar{flex-direction:column;align-items:flex-start;gap:12px;padding:12px 14px;min-height:auto}.status-text{font-size:12px;line-height:1.5;word-wrap:break-word;max-width:100%}.status-actions{width:100%;flex-wrap:wrap;gap:6px}.edit-breach-item{grid-template-columns:1fr}}