@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,600;1,9..144,300&display=swap";:root{--bg: #f7f3ec;--surface: #fefcf8;--border: #e8dfc8;--border-strong: #d0c4a0;--text-primary: #251e0f;--text-secondary: #7a6a40;--text-muted: #a0926a;--accent: #2d6a4f;--accent-light: #d8ede4;--accent-muted: #74c69d;--danger: #c49a3a;--weekly-accent: #c49a3a;--weekly-light: #f5edcc;--shadow-sm: 0 1px 3px rgba(37, 30, 15, .06);--shadow-md: 0 4px 12px rgba(37, 30, 15, .08);--radius: 10px;--radius-sm: 6px}*{box-sizing:border-box}body{background-color:var(--bg);font-family:DM Mono,monospace;color:var(--text-primary)}.entries-page{display:flex;flex-direction:column;height:100%;width:60%;max-width:780px;min-width:480px;margin:auto;padding-bottom:2rem}.date-selector{display:grid;grid-template-columns:1fr auto 1fr 1fr 1fr auto 1fr;align-items:center;text-align:center;padding:1.25rem .5rem;border-bottom:1px solid var(--border);margin-bottom:.5rem}.current-date{display:flex;flex-direction:column;align-items:center;gap:.1rem}.current-date h3{font-family:Fraunces,serif;font-size:1.6rem;font-weight:600;letter-spacing:.01em;color:var(--text-primary);margin:0}.current-date span{font-family:DM Mono,monospace;font-size:.7rem;font-weight:400;letter-spacing:.08em;color:var(--text-muted);margin:0}.date-selector button{height:2.2rem;width:2.2rem;border:none;background:transparent;font-size:1.3rem;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);border-radius:var(--radius-sm);transition:background-color .15s ease,color .15s ease;margin:auto}.date-selector button:hover{background-color:var(--border);color:var(--text-primary)}.date-selector button:disabled{color:var(--text-muted);cursor:default;background:transparent}.date-selector .divider{height:1.4rem;width:1px;background-color:var(--border-strong);margin:auto}.list-container{display:flex;flex-direction:column;gap:1.25rem;padding:1rem 0;overflow-y:auto;flex:1}.list-container::-webkit-scrollbar{width:4px}.list-container::-webkit-scrollbar-track{background:transparent}.list-container::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.list{display:flex;flex-direction:column;gap:0;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.list-wrap>h2{font-family:DM Mono,monospace;font-size:.65rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin:0 0 .35rem;padding:0 .25rem}.list>h3{font-family:DM Mono,monospace;font-size:.8rem;font-weight:400;color:var(--text-muted);margin:0;padding:.75rem 1rem;background:var(--surface);text-align:center}.list-wrap{display:flex;flex-direction:column;gap:.35rem}.entry{display:flex;justify-content:space-between;align-items:stretch;background:var(--surface);border:none;border-bottom:1px solid var(--border);min-height:4.5rem;transition:background-color .15s ease;position:relative}.list>.entry:last-of-type{border-bottom:none}.entry:hover{background-color:var(--accent-light)}.entry:before{content:"";position:absolute;left:0;top:20%;height:60%;width:3px;background:var(--border);border-radius:0 2px 2px 0;transition:background .2s ease,height .2s ease,top .2s ease}.entry:has(.complete):before{background:var(--accent);top:0;height:100%}.entry-info{display:flex;flex-direction:column;justify-content:center;padding:.75rem 1rem .75rem 1.25rem;flex-grow:1;overflow:hidden;gap:.15rem}.entry-info h2{margin:0;font-family:Fraunces,serif;font-size:1rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary);line-height:1.3}.entry-info p{margin:0;font-size:.7rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em}.entry-progress,.progress-container{display:flex;align-items:stretch}.progress-bar{display:flex;flex-direction:column;justify-content:center;width:14rem;padding:.5rem 1.2rem;gap:.3rem}.progress-parameters{display:flex;justify-content:space-between;align-items:baseline;gap:.25rem}.progress-parameters input{flex:1;border:none;background:transparent;font-family:DM Mono,monospace;font-size:.82rem;color:var(--text-primary);padding:0;min-width:0}.progress-parameters input:focus{outline:none}.no-arrows::-webkit-inner-spin-button,.no-arrows::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.no-arrows{-moz-appearance:textfield}.progress-parameters span{font-family:DM Mono,monospace;font-size:.82rem;color:var(--text-muted);text-align:right;flex-shrink:0}.progress-parameters span:before{content:"/";margin-right:.2rem;color:var(--border-strong)}progress{appearance:none;-webkit-appearance:none;width:100%;height:5px;border-radius:99px;display:block}progress::-webkit-progress-bar{background-color:var(--border);border-radius:99px}progress::-webkit-progress-value{background-color:var(--accent-muted);border-radius:99px;transition:width .35s cubic-bezier(.4,0,.2,1)}progress::-moz-progress-bar{background-color:var(--accent-muted);border-radius:99px;transition:width .35s cubic-bezier(.4,0,.2,1)}progress[value]:not([value="0"])::-webkit-progress-value{background-color:var(--accent-muted)}.progress-unit{display:flex;justify-content:flex-end}.progress-unit span{font-size:.65rem;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase}.progress-controls{display:grid;grid-template-rows:1fr 1fr;border-left:1px solid var(--border)}.progress-controls button{border:none;background:transparent;cursor:pointer;font-size:1rem;color:var(--text-secondary);padding:0 .9rem;transition:background-color .12s ease,color .12s ease;font-family:DM Mono,monospace;line-height:1}.progress-controls button:hover{background-color:var(--accent-light);color:var(--accent)}.progress-controls button:active{background-color:var(--accent-muted);color:var(--surface)}.progress-controls button:first-child{border-bottom:1px solid var(--border)}.progress-completed{aspect-ratio:unset;width:3.2rem;align-self:stretch;border:none;border-left:1px solid var(--border);cursor:pointer;background:transparent;transition:background-color .25s ease;position:relative;display:flex;align-items:center;justify-content:center;color:transparent}.progress-completed:after{content:"";width:10px;height:6px;border-left:2px solid var(--border-strong);border-bottom:2px solid var(--border-strong);transform:rotate(-45deg) translateY(-1px);transition:border-color .2s ease}.progress-completed:hover:after{border-color:var(--accent)}.progress-completed:hover{background-color:var(--accent-light)}.progress-completed.complete{background-color:var(--accent)}.progress-completed.complete:after{border-color:#fff}html,body{margin:0;padding:0;font-size:106.25%}body{background-color:var(--bg);background-image:radial-gradient(var(--border) 1px,transparent 1px);background-size:36px 36px}main{height:calc(100vh - 3.5rem)}h1,h2,h3,p{margin:0}button{font-family:DM Mono,monospace;cursor:pointer}nav{height:3.5rem;background-color:var(--surface);border-bottom:1px solid var(--border);display:grid;grid-template-columns:1fr auto;align-items:stretch;padding:0 2rem}.link-list{display:flex;align-items:stretch;gap:.25rem}.link-list a{text-decoration:none;display:flex;align-items:center;padding:0 1.25rem;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);border-bottom:2px solid transparent;transition:color .15s ease,border-color .15s ease}.link-list a:visited{color:var(--text-secondary)}.link-list a:hover{color:var(--text-primary)}.link-list a.active{color:var(--text-primary);border-bottom:2px solid var(--accent)}.sign-out{display:flex;align-items:center;gap:1.5rem}.sign-out p{font-size:.75rem;color:var(--text-muted);letter-spacing:.03em}#logout-btn{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;background:transparent;border:1px solid var(--border-strong);color:var(--text-secondary);padding:.4rem 1rem;border-radius:var(--radius-sm);transition:background-color .15s ease,color .15s ease,border-color .15s ease}#logout-btn:hover{background-color:var(--danger);border-color:var(--danger);color:#fff}.auth-page{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;gap:1.5rem}.auth-page h1{font-family:Fraunces,serif;font-size:2rem;font-weight:300;letter-spacing:.02em;color:var(--text-primary)}.auth-form{display:flex;flex-direction:column;gap:1rem;width:22rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem}.auth-form button{margin-top:.5rem;padding:.65rem;background-color:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;transition:opacity .15s ease}.auth-form button:hover{opacity:.88}.auth-form button:disabled{opacity:.5;cursor:default}.auth-error{font-size:.75rem;color:var(--danger);letter-spacing:.02em}.auth-link{font-size:.78rem;color:var(--text-muted)}.auth-link a{color:var(--accent);text-decoration:none}.auth-link a:hover{text-decoration:underline}.form-input{display:flex;flex-direction:column;gap:.35rem}.form-input label{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.form-input input,.form-input textarea,.form-input select{font-family:DM Mono,monospace;font-size:.85rem;color:var(--text-primary);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .75rem;transition:border-color .15s ease;outline:none;width:100%;box-sizing:border-box}.form-input input:focus,.form-input textarea:focus,.form-input select:focus{border-color:var(--border-strong)}.form-input textarea{resize:vertical;min-height:4rem}.input-pair{display:flex;gap:.75rem;min-width:0}.input-pair .form-input{min-width:0;flex:1}.input-pair .form-input:first-child{flex:2}.habit-page{display:grid;grid-template-columns:1fr auto;height:100%;overflow:hidden}.habit-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-content:start;gap:1rem;padding:1.5rem;overflow-y:auto}.add-btn-container{grid-column:1 / -1;display:flex;justify-content:center;padding:.5rem 0}.add-btn-container>button{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;background:transparent;border:1px dashed var(--border-strong);color:var(--text-secondary);padding:.6rem 2rem;border-radius:var(--radius-sm);transition:background-color .15s ease,color .15s ease,border-color .15s ease}.add-btn-container>button:hover{background-color:var(--accent-light);border-color:var(--accent);color:var(--accent)}.habit-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:box-shadow .15s ease,border-color .15s ease;overflow:hidden;min-height:14rem;position:relative}.habit-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.inactive{background-color:var(--bg);opacity:.65}.habit-content{display:flex;flex-direction:column;gap:.5rem;padding:1rem 1rem 1.25rem;height:100%;overflow:hidden}.habit-controls{position:absolute;top:.6rem;right:.6rem;display:flex;gap:0;opacity:0;transition:opacity .15s ease;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.habit-card:hover .habit-controls{opacity:1}.habit-controls button{border:none;border-right:1px solid var(--border);background:transparent;color:var(--text-muted);padding:.35rem .6rem;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:background-color .12s ease,color .12s ease}.habit-controls button:last-child{border-right:none}.habit-controls button:hover:not(:disabled){background-color:var(--border);color:var(--text-primary)}.habit-controls button:last-child:hover:not(:disabled){background-color:#fde8e0;border-color:var(--danger);color:var(--danger)}.habit-controls button:disabled{opacity:.4;cursor:default}.habit-title{font-family:Fraunces,serif;font-size:1rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.habit-description{font-size:.72rem;color:var(--text-muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:.5rem 0}.habit-type,.habit-target,.habit-frequency{font-size:.72rem;color:var(--text-secondary);letter-spacing:.02em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.habit-type span,.habit-target span,.habit-frequency span{color:var(--text-muted);font-size:.65rem}.habit-days-of-week{display:flex;gap:.25rem;flex-wrap:nowrap;margin-top:auto}.habit-day{display:flex;justify-content:center;align-items:center;flex:1;aspect-ratio:1 / 1;border-radius:50%;font-size:.55rem;letter-spacing:.03em;font-weight:500;background-color:var(--accent-light);color:var(--accent);min-width:0}.disabled-day{background-color:var(--border);color:var(--text-muted)}.form-dow-input{display:flex;flex-direction:column;gap:.5rem}.form-dow-input>label{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.dow-input-list{display:flex;list-style:none;gap:.4rem;padding:0;margin:0}.input-list-item{display:flex;flex-direction:column;align-items:center;gap:.25rem;font-size:.65rem;color:var(--text-secondary);letter-spacing:.04em}.input-list-item input[type=checkbox]{accent-color:var(--accent);width:.9rem;height:.9rem;cursor:pointer}.habit-side-panel{width:380px;border-left:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;overflow-y:auto}.habit-side-panel>button{align-self:flex-end;margin:1rem 1rem 0;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:.3rem .75rem;border-radius:var(--radius-sm);transition:background-color .12s ease,color .12s ease}.habit-side-panel>button:hover{background-color:var(--border);color:var(--text-primary)}.habit-create,.habit-update{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.habit-create h1,.habit-update h1{font-family:Fraunces,serif;font-size:1.4rem;font-weight:300;color:var(--text-primary)}.habit-form{display:flex;flex-direction:column;gap:1rem;min-width:0}.habit-form>p{font-size:.75rem;color:var(--text-secondary);letter-spacing:.02em}.habit-form button[type=submit]{margin-top:.5rem;padding:.65rem;background-color:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;transition:opacity .15s ease}.habit-form button[type=submit]:hover{opacity:.88}.habit-form button[type=submit]:disabled{opacity:.5;cursor:default}.habit-delete{position:fixed;inset:0;margin:auto;width:26rem;height:fit-content;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:2rem;display:flex;flex-direction:column;gap:1.5rem}.habit-delete p{font-size:.85rem;color:var(--text-secondary);line-height:1.6}.habit-delete p b{color:var(--text-primary);font-weight:500}.delete-controls{display:flex;justify-content:flex-end;gap:.75rem}.delete-controls button{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;padding:.5rem 1.5rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-secondary);transition:background-color .12s ease,color .12s ease,border-color .12s ease}.delete-controls button:first-child:hover{background-color:var(--border);color:var(--text-primary)}.delete-controls button:last-child{background-color:var(--danger);border-color:var(--danger);color:#fff}.delete-controls button:last-child:hover{opacity:.88}.delete-controls button:disabled{opacity:.5;cursor:default}.theme-switcher{position:relative;display:flex;align-items:center}.theme-toggle-btn{font-size:1.1rem;background:transparent;border:1px solid var(--border);color:var(--text-secondary);padding:.3rem .5rem;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:background-color .15s ease,color .15s ease}.theme-toggle-btn:hover{background-color:var(--border);color:var(--text-primary)}.theme-dropdown{position:absolute;top:calc(100% + .5rem);right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:.5rem;z-index:100}.theme-columns{display:flex;gap:0}.theme-section{display:flex;flex-direction:column;gap:.15rem;width:150px;max-height:320px;overflow-y:auto}.theme-section::-webkit-scrollbar{width:3px}.theme-section::-webkit-scrollbar-track{background:transparent}.theme-section::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.theme-column-divider{width:1px;background:var(--border);margin:0 .25rem;align-self:stretch}.theme-dropdown-label{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);padding:.25rem .5rem;margin:0}.theme-option{display:flex;align-items:center;gap:.5rem;background:transparent;border:none;border-radius:var(--radius-sm);padding:.4rem .5rem;font-size:.78rem;color:var(--text-secondary);text-align:left;transition:background-color .12s ease,color .12s ease;width:100%}.theme-option:hover{background-color:var(--border);color:var(--text-primary)}.theme-option.active{color:var(--accent);background-color:var(--accent-light)}.theme-swatch{width:.7rem;height:.7rem;border-radius:50%;border:1px solid var(--border-strong);flex-shrink:0}@media(max-width:768px){nav{padding:0 .75rem}.link-list{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-shrink:1}.link-list::-webkit-scrollbar{display:none}.link-list a{padding:0 .75rem;font-size:.72rem;white-space:nowrap}.sign-out{gap:.5rem;flex-shrink:0}.sign-out p{display:none}#logout-btn{padding:.4rem .65rem;white-space:nowrap}.entries-page{width:100%!important;min-width:0!important;max-width:100%!important;padding:0 .75rem 2rem;box-sizing:border-box}.date-selector{grid-template-columns:auto auto 1fr auto auto;padding:1rem 0;gap:0}.date-selector .divider{display:none}.date-selector button{width:2rem;height:2rem;font-size:1rem}.current-date{grid-column:unset}.current-date h3{font-size:1.3rem}.entry{display:flex!important;flex-direction:column!important;align-items:stretch!important;min-height:unset!important}.entry-info{padding:.75rem 1rem}.entry-progress{display:flex!important;flex-direction:row!important;align-items:stretch;border-top:1px solid var(--border);min-height:3rem}.progress-container{display:flex!important;flex-direction:row!important;flex:1;min-width:0}.progress-bar{flex:1;width:auto!important;min-width:0;padding:.5rem .85rem}.progress-controls{display:grid!important;grid-template-rows:unset!important;grid-template-columns:1fr 1fr!important;border-left:1px solid var(--border)}.progress-controls button{padding:0 .85rem;font-size:1.1rem}.progress-controls button:first-child{border-bottom:none!important;border-right:1px solid var(--border)}.progress-completed{width:3rem!important;flex-shrink:0;border-left:1px solid var(--border)}}@media(max-width:400px){.current-date h3{font-size:1.1rem}.current-date span{font-size:.6rem}.link-list a{padding:0 .55rem;font-size:.68rem}.progress-controls button{padding:0 .6rem}.progress-completed{width:2.5rem!important}}@media(max-width:768px){.entry-progress:not(:has(.progress-container)) .progress-completed,.entry-progress>.progress-completed:only-child{width:100%!important;border-left:none;border-radius:0}}
