:root{--navy:#071b33;--blue:#123d73;--bright:#2d72d9;--red:#aa2d36;--gold:#d3a83c;--paper:#f5f7fb;--ink:#172033;--muted:#687387;--line:#dfe5ef;--card:#fff;--radius:18px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.topbar{height:72px;padding:0 max(24px,calc((100vw - 1120px)/2));display:flex;align-items:center;justify-content:space-between;background:var(--navy);color:#fff;border-bottom:3px solid var(--gold)}.brand{display:flex;align-items:center;gap:10px;letter-spacing:.08em;font-size:14px}.brand img{width:36px;height:36px}.brand b{color:var(--gold)}nav{display:flex;align-items:center;gap:24px;font-size:14px}nav form{display:inline}.link{border:0;background:none;padding:0;color:inherit;cursor:pointer}.page{max-width:1120px;margin:0 auto;padding:52px 24px 80px}.narrow{max-width:800px}.eyebrow{margin:0 0 8px;color:var(--red);font-size:12px;font-weight:800;letter-spacing:.16em}.hero,.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}h1{font:800 clamp(32px,5vw,52px)/1.05 Georgia,serif;margin:0 0 10px;color:var(--navy)}h2{font-size:18px;margin:0 0 18px}.muted{color:var(--muted);margin:4px 0}.lede{font-size:18px;color:var(--muted);max-width:620px;margin-bottom:26px}.ring{width:116px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--gold) calc(var(--p)*1%),#dce4f0 0);position:relative}.ring:after{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--paper)}.ring span{z-index:1;text-align:center}.ring b,.ring small{display:block}.ring b{font-size:23px;color:var(--navy)}.ring small{font-size:11px;color:var(--muted)}.date-nav{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 4px;margin-bottom:22px;color:var(--blue);font-size:14px}.date-nav input{border:0;background:transparent;color:var(--ink)}.habit-list{display:grid;gap:12px}.habit-card{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--habit);border-radius:var(--radius);padding:17px 20px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 5px 20px #16253b0a}.habit-main{display:flex;gap:14px;align-items:center}.color-dot{width:11px;height:11px;border-radius:50%;background:var(--habit)}.habit-name{font-weight:750;color:var(--navy);font-size:18px}.habit-card p{font-size:13px;color:var(--muted);margin:5px 0}.tag{color:var(--blue);background:#edf4ff;border-radius:999px;padding:3px 8px}.checks form{display:flex;gap:7px}.check{width:39px;height:39px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#8390a3;font-size:20px;cursor:pointer}.check.active{border-color:var(--blue);box-shadow:0 0 0 2px #2d72d933}.check.half.active{background:var(--gold);color:#fff;border-color:var(--gold)}.check.full.active{background:var(--blue);color:#fff;border-color:var(--blue)}.check.skip.active{background:#8290a2;color:#fff}.fab{position:fixed;right:28px;bottom:28px;width:58px;height:58px;display:grid;place-items:center;border-radius:50%;background:var(--red);color:#fff;font-size:28px;box-shadow:0 9px 24px #aa2d3655}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;margin:22px 0}.stack{display:grid;gap:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.span2{grid-column:span 2}label{display:grid;gap:7px;color:#33405a;font-size:13px;font-weight:700}input,select,textarea{width:100%;border:1px solid #cfd8e6;border-radius:10px;padding:11px 12px;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:3px solid #2d72d922;border-color:var(--bright)}textarea{min-height:84px;resize:vertical}input[type=color]{padding:4px;height:43px}.days{display:flex;flex-wrap:wrap;gap:7px}.days label{position:relative}.days input{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer}.days input:focus-visible+span{outline:3px solid var(--bright);outline-offset:2px}.days span{display:block;padding:9px 11px;border:1px solid var(--line);border-radius:9px}.days input:checked+span{background:var(--blue);border-color:var(--blue);color:#fff}fieldset{border:0;padding:0;margin:0}legend{font-size:13px;font-weight:700;margin-bottom:7px}.primary,.secondary,.danger,.button{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:11px 16px;border:1px solid transparent;font-weight:750;cursor:pointer}.primary{background:var(--red);color:#fff}.secondary{background:#fff;color:var(--blue);border-color:#cdd8e8}.danger{background:#fff;color:var(--red);border-color:#e5bbc0}.small{padding:7px 11px;font-size:13px}.actions,.row-actions{display:flex;gap:10px;justify-content:flex-end}.manage-row,.history-row{display:flex;justify-content:space-between;align-items:center;padding:15px 0;border-top:1px solid var(--line)}.manage-row:first-of-type{border-top:0}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-grid div{background:var(--navy);color:#fff;padding:22px;border-radius:15px}.stat-grid b,.stat-grid span{display:block}.stat-grid b{font-size:30px;color:var(--gold)}.stat-grid span{font-size:12px}.inline-form{display:grid;grid-template-columns:160px 160px 1fr auto;gap:10px}.history-row{justify-content:flex-start;gap:12px}.history-row form{margin-left:auto}.status{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#e7edf5}.status.complete{background:var(--blue);color:#fff}.status.minimum{background:var(--gold);color:#fff}.danger-text{color:var(--red)}.report-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.report-button{padding:20px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:13px;color:var(--navy);cursor:pointer}.report-button:hover{border-color:var(--gold)}.report-button b,.report-button span{display:block}.report-button span{color:var(--muted);font-size:12px;margin-top:5px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 80% 20%,#1c4a7f,var(--navy) 55%)}.login-card{width:min(440px,100%);background:#fff;padding:40px;border-radius:24px;border-top:4px solid var(--gold);box-shadow:0 30px 80px #0006}.crest{width:70px;margin-bottom:24px}.login-card h1{font-size:42px}.error{color:var(--red);font-weight:700;font-size:14px}.empty{text-align:center;padding:50px;background:#fff;border:1px dashed #bfcadd;border-radius:var(--radius)}@media(max-width:720px){.topbar{height:auto;padding:14px 18px;align-items:flex-start}.brand span{display:none}nav{gap:14px;font-size:12px;flex-wrap:wrap;justify-content:flex-end}.page{padding:34px 16px 90px}.hero{align-items:flex-start}.ring{width:88px;flex:0 0 auto}.habit-card{align-items:flex-start;gap:14px;flex-direction:column}.checks,.checks form{width:100%}.check{flex:1}.form-grid{grid-template-columns:1fr}.span2{grid-column:span 1}.stat-grid{grid-template-columns:1fr 1fr}.inline-form{grid-template-columns:1fr}.report-options{grid-template-columns:1fr}.page-heading{align-items:flex-start}.manage-row{align-items:flex-start;gap:12px}.row-actions{flex-wrap:wrap}.date-nav a{font-size:0}.date-nav a:first-child:after{content:'←';font-size:18px}.date-nav a:last-child:after{content:'→';font-size:18px}}
