*{box-sizing:border-box}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-bg: #0b0b0b;--color-surface: #151515;--color-border: #262626;--color-text: #cfc7bf;--color-muted: #9b948c;--color-accent: #c1b7aa;--color-separator: #2f2f2f;--color-shadow: rgba(0, 0, 0, .55);--color-placeholder: #7e7872;--color-icon: #bdb5ad;--color-title: #1a1a1a;--bg-deep: #0a0a0a;--bg-card: #0f0f0f;--border: #1a1a1a;--text-primary: #e8e4df;--text-muted: #6b6560;--text-dim: #3a3835;--firefly-core: #c4d94e;--firefly-glow: #a8c256;--firefly-dim: #2a2e1a;--firefly-ambient: rgba(168, 194, 86, .15)}a{font-weight:500;color:var(--color-accent);text-decoration:inherit}a:hover{color:var(--color-accent);opacity:.85}html,body{height:100%;margin:0}body{min-width:320px;background-color:var(--color-bg);color:var(--color-text)}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--color-surface);color:var(--color-text);cursor:pointer;transition:border-color .25s,background-color .25s,color .25s}button:hover{border-color:var(--color-accent)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.card{width:100%;padding:1.25rem 1.5rem;background:var(--bg-card, #0f0f0f);border:1px solid var(--border, #1a1a1a);border-radius:6px}.card--flex{min-height:200px;display:flex;flex-direction:column}.card-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.75rem}.section-label{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted, #6b6560)}.mono{font-family:JetBrains Mono,monospace}.empty-state{color:var(--text-dim, #3a3835);font-style:italic}.content-area{background:var(--bg-deep, #0a0a0a);border-radius:4px;padding:.75rem}.form-input{flex:1;min-width:0;padding:.5rem .75rem;background:var(--bg-card, #0f0f0f);border:1px solid var(--border, #1a1a1a);border-radius:4px;color:var(--text-muted, #6b6560);font-size:.75rem;font-family:inherit;outline:none;transition:border-color .2s ease}.form-input::placeholder{color:var(--text-dim, #3a3835);font-style:italic}.form-input:focus{border-color:var(--text-dim, #3a3835)}.btn-ghost{padding:.5rem .75rem;background:none;border:1px solid var(--border, #1a1a1a);border-radius:4px;color:var(--text-dim, #3a3835);font-size:.75rem;cursor:pointer;transition:all .2s ease}.btn-ghost:hover{border-color:var(--text-dim, #3a3835);color:var(--text-muted, #6b6560)}.btn-ghost--sm{padding:.4rem .75rem;font-size:.65rem}.btn-ghost--caps{letter-spacing:.05em;text-transform:uppercase}.list-container{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.list-item{display:flex;align-items:center;padding:.6rem .75rem;background:var(--bg-deep, #0a0a0a);border-radius:4px;transition:background .2s ease}.list-item:hover{background:var(--border, #1a1a1a)}.flex-row{display:flex;gap:.5rem}.flex-content{flex:1;overflow-y:auto}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#root{min-height:100vh;width:100%;margin:0;display:flex;justify-content:center;padding:3rem 1.5rem}.app{max-width:900px;width:100%}.app-header{margin-bottom:1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.app-title{margin:0;font-weight:400}.app-main{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.countdown-section{grid-column:1 / -1}.time-log-section,.draft-section{min-height:300px;display:flex;flex-direction:column}.time-log-section>*,.draft-section>*{flex:1}@media(max-width:768px){.app-main{grid-template-columns:1fr}}.app-footer{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border, #1a1a1a);display:flex;justify-content:space-between;align-items:center}.footer-copyright{font-size:.7rem;color:var(--text-dim, #3a3835)}.footer-link{font-size:.7rem;color:var(--text-muted, #6b6560);text-decoration:none;transition:color .2s ease}.footer-link:hover{color:var(--text-light, #a09a94)}.firefly-header{margin-bottom:1rem}.firefly-time{font-size:.7rem;color:var(--text-dim, #3a3835);letter-spacing:.02em}.firefly-bar-track{display:grid;grid-template-columns:repeat(auto-fill,12px);gap:3px;padding:6px;background:transparent;border-radius:4px}.firefly-dot{width:12px;height:12px;border-radius:50%;background:var(--firefly-dim, #2a2e1a);transition:all .3s ease;position:relative;flex-shrink:0}.firefly-dot.active{background:var(--firefly-core, #c4d94e);box-shadow:0 0 5px 1px var(--firefly-glow, #a8c256),0 0 10px 3px var(--firefly-ambient, rgba(168, 194, 86, .15))}.firefly-dot.active.hopping{animation:firefly-hop .4s ease-out}.firefly-dot.active.pulsing{animation:firefly-pulse 2s ease-in-out infinite}@keyframes firefly-hop{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes firefly-pulse{0%,to{opacity:.85;box-shadow:0 0 5px 1px var(--firefly-glow, #a8c256),0 0 10px 3px var(--firefly-ambient, rgba(168, 194, 86, .15))}50%{opacity:1;box-shadow:0 0 8px 2px var(--firefly-glow, #a8c256),0 0 14px 5px var(--firefly-ambient, rgba(168, 194, 86, .15))}}.firefly-footer{display:flex;justify-content:space-between;align-items:baseline;margin-top:.75rem}.firefly-subtitle{font-size:.75rem;color:var(--text-dim, #3a3835);font-style:italic;margin:0}.firefly-percent{font-size:.65rem;color:var(--text-dim, #3a3835)}.firefly-card.clickable{cursor:pointer;transition:border-color .2s ease}.firefly-card.clickable:hover{border-color:var(--text-dim, #3a3835)}.firefly-setup-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease,margin-top .3s ease;margin-top:0}.firefly-setup-panel.open{grid-template-rows:1fr;margin-top:.75rem}.firefly-setup-form{display:flex;flex-direction:column;gap:.5rem;overflow:hidden}.firefly-time-presets{display:flex;gap:.5rem;justify-content:center}.firefly-preset-btn{padding:.4rem .75rem;background:var(--bg-card, #0f0f0f);border:1px solid var(--border, #1a1a1a);border-radius:4px;color:var(--text-dim, #3a3835);font-size:.65rem;cursor:pointer;transition:all .2s ease}.firefly-preset-btn:hover{border-color:var(--text-dim, #3a3835);color:var(--text-muted, #6b6560)}.firefly-preset-btn.active{background:var(--firefly-dim, #2a2e1a);border-color:var(--firefly-glow, #a8c256);color:var(--firefly-core, #c4d94e)}.firefly-custom-time{display:flex;align-items:center;gap:.25rem;padding:.4rem .5rem;background:var(--bg-card, #0f0f0f);border:1px solid var(--border, #1a1a1a);border-radius:4px;transition:all .2s ease}.firefly-custom-time:focus-within{border-color:var(--firefly-glow, #a8c256)}.firefly-custom-input{width:2.5rem;padding:0;background:transparent;border:none;color:var(--text-dim, #3a3835);font-size:.65rem;text-align:right;outline:none;-moz-appearance:textfield}.firefly-custom-input::-webkit-outer-spin-button,.firefly-custom-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.firefly-custom-input::placeholder{color:var(--text-dim, #3a3835);opacity:.6}.firefly-custom-input:focus{color:var(--text-muted, #6b6560)}.firefly-custom-label{font-size:.65rem;color:var(--text-dim, #3a3835)}.firefly-setup-row{display:flex;gap:.5rem;align-items:stretch}.firefly-task-input{flex:1;min-width:0;padding:.5rem .75rem;background:var(--bg-card, #0f0f0f);border:1px solid var(--border, #1a1a1a);border-radius:4px;color:var(--text-muted, #6b6560);font-size:.75rem;font-family:inherit;outline:none;transition:border-color .2s ease}.firefly-task-input::placeholder{color:var(--text-dim, #3a3835);font-style:italic}.firefly-task-input:focus{border-color:var(--text-dim, #3a3835)}.firefly-start-btn{padding:.5rem 1rem;background:var(--firefly-dim, #2a2e1a);border:1px solid var(--firefly-glow, #a8c256);border-radius:4px;color:var(--firefly-core, #c4d94e);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .2s ease;white-space:nowrap}.firefly-start-btn:hover{background:var(--firefly-glow, #a8c256);color:var(--bg-deep, #0a0a0a)}.firefly-cancel-btn{padding:.5rem .75rem;background:none;border:1px solid var(--border, #1a1a1a);border-radius:4px;color:var(--text-dim, #3a3835);font-size:.65rem;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:all .2s ease;white-space:nowrap}.firefly-cancel-btn:hover{border-color:var(--text-dim, #3a3835);color:var(--text-muted, #6b6560)}.firefly-footer-right{display:flex;align-items:baseline;gap:.75rem}.firefly-stop-btn{padding:.25rem .5rem;background:none;border:1px solid var(--text-dim, #3a3835);border-radius:3px;color:var(--text-dim, #3a3835);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.firefly-stop-btn:hover{border-color:var(--text-muted, #6b6560);color:var(--text-muted, #6b6560)}.firefly-cycle-count{font-style:normal;opacity:.6}.firefly-alarm-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:alarm-fade-in .2s ease}@keyframes alarm-fade-in{0%{opacity:0}to{opacity:1}}.firefly-alarm-modal{background:var(--bg-card, #0f0f0f);border:1px solid var(--border, #1a1a1a);border-radius:6px;padding:1.5rem 2rem;text-align:center;max-width:280px;animation:alarm-slide-in .2s ease}@keyframes alarm-slide-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.firefly-alarm-content{display:flex;flex-direction:column;align-items:center;gap:.75rem}.firefly-alarm-icon{margin-bottom:.25rem}.firefly-alarm-dot{width:16px;height:16px;border-radius:50%;background:var(--firefly-core, #c4d94e);box-shadow:0 0 8px 2px var(--firefly-glow, #a8c256),0 0 16px 4px var(--firefly-ambient, rgba(168, 194, 86, .2));animation:alarm-dot-pulse 2s ease-in-out infinite}@keyframes alarm-dot-pulse{0%,to{opacity:.8}50%{opacity:1}}.firefly-alarm-title{font-size:.7rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted, #6b6560);margin:0}.firefly-alarm-task{font-size:.85rem;color:var(--text-muted, #6b6560);margin:0}.firefly-alarm-cycle{font-size:.65rem;color:var(--text-dim, #3a3835);margin:0;font-style:italic}.firefly-alarm-summary{width:100%;padding:.5rem .75rem;background:var(--bg-deep, #0a0a0a);border:1px solid var(--border, #1a1a1a);border-radius:4px;color:var(--text-muted, #6b6560);font-size:.75rem;font-family:inherit;outline:none;resize:none;transition:border-color .2s ease;margin-top:.25rem}.firefly-alarm-summary::placeholder{color:var(--text-dim, #3a3835);font-style:italic}.firefly-alarm-summary:focus{border-color:var(--text-dim, #3a3835)}.firefly-alarm-btn{margin-top:.5rem;padding:.5rem 1rem;background:var(--firefly-dim, #2a2e1a);border:1px solid var(--firefly-glow, #a8c256);border-radius:4px;color:var(--firefly-core, #c4d94e);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.firefly-alarm-btn:hover{background:var(--firefly-glow, #a8c256);color:var(--bg-deep, #0a0a0a)}.todo-input-row{display:flex;gap:.5rem;margin-bottom:.75rem}.todo-input{flex:1;min-width:0;padding:.5rem .75rem;background:var(--bg-card, #0f0f0f);border:1px solid var(--border, #1a1a1a);border-radius:4px;color:var(--text-muted, #6b6560);font-size:.75rem;font-family:inherit;outline:none;transition:border-color .2s ease}.todo-input::placeholder{color:var(--text-dim, #3a3835);font-style:italic}.todo-input:focus{border-color:var(--text-dim, #3a3835)}.todo-add-btn{padding:.5rem .75rem;background:none;border:1px solid var(--border, #1a1a1a);border-radius:4px;color:var(--text-dim, #3a3835);font-size:.75rem;cursor:pointer;transition:all .2s ease}.todo-add-btn:hover{border-color:var(--text-dim, #3a3835);color:var(--text-muted, #6b6560)}.todo-list{list-style:none;padding:0;margin:0;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.todo-empty{font-size:.75rem;color:var(--text-dim, #3a3835);font-style:italic;padding:.5rem 0}.todo-item{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;background:var(--bg-deep, #0a0a0a);border-radius:4px;transition:background .2s ease}.todo-item:hover{background:var(--border, #1a1a1a)}.todo-label{display:flex;align-items:center;gap:.5rem;flex:1;cursor:pointer;min-width:0}.todo-checkbox{appearance:none;width:14px;height:14px;border:1px solid var(--text-dim, #3a3835);border-radius:3px;background:transparent;cursor:pointer;flex-shrink:0;position:relative;transition:all .2s ease}.todo-checkbox:hover{border-color:var(--text-muted, #6b6560)}.todo-checkbox:checked{background:var(--text-dim, #3a3835);border-color:var(--text-dim, #3a3835)}.todo-checkbox:checked:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:9px;color:var(--bg-deep, #0a0a0a);font-weight:600}.todo-text{font-size:.8rem;color:var(--text-muted, #6b6560);transition:all .2s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.todo-text--completed{text-decoration:line-through;color:var(--text-dim, #3a3835)}.todo-delete-btn{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;border-radius:3px;background:transparent;color:var(--text-dim, #3a3835);font-size:.875rem;cursor:pointer;opacity:0;transition:all .2s ease;flex-shrink:0}.todo-item:hover .todo-delete-btn{opacity:1}.todo-delete-btn:hover{color:var(--text-muted, #6b6560)}.time-log-content{flex:1;overflow-y:auto}.time-log-empty{font-size:.75rem;margin:0;padding:.5rem 0}.time-log-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.time-log-item{display:flex;justify-content:space-between;align-items:center;padding:.6rem .75rem;background:var(--bg-deep, #0a0a0a);border-radius:4px;transition:background .2s ease}.time-log-item:hover{background:var(--border, #1a1a1a)}.time-log-task{display:flex;flex-direction:column;justify-content:center;gap:.15rem;min-width:0;flex:1}.time-log-task-name{display:flex;align-items:center;font-size:.8rem;color:var(--text-muted, #6b6560);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time-log-session-count{font-size:.6rem;color:var(--text-dim, #3a3835)}.time-log-duration{font-size:.75rem;color:var(--text-muted, #6b6560);margin-left:1rem;white-space:nowrap;align-self:center}.time-log-item.active{background:var(--bg-deep, #0a0a0a)}.time-log-live-indicator{display:inline-block;width:5px;height:5px;background:var(--firefly-core, #c4d94e);border-radius:50%;margin-left:.4rem;flex-shrink:0;opacity:.8}.time-log-duration.live{color:var(--text-muted, #6b6560)}.daylight-status{display:flex;align-items:center;font-size:.85rem;color:var(--text-muted, #6b6560)}.daylight-info{display:flex;flex-direction:column;gap:.15rem}.daylight-row{display:flex;align-items:baseline;gap:.75rem}.daylight-details{font-size:.7rem;color:var(--text-muted, #6b6560)}.daylight-length{margin-left:.5rem;opacity:.7}.daylight-next{font-size:.65rem;color:var(--text-dim, #3a3835);font-style:italic}.daylight-loading{opacity:.5}.about-content{margin-bottom:2rem}.about-heading{font-size:1.25rem;font-weight:500;color:var(--text-light, #a09a94);margin:0 0 1rem}.about-subheading{font-size:.85rem;font-weight:500;color:var(--text-muted, #6b6560);margin:1.5rem 0 .75rem;text-transform:uppercase;letter-spacing:.1em}.about-text{font-size:.85rem;color:var(--text-muted, #6b6560);line-height:1.7;margin:0 0 .75rem}.about-text:last-of-type{margin-bottom:0}.about-emphasis{font-style:italic;color:var(--text-light, #a09a94)}.about-text mark{background:transparent;color:var(--text-light, #a09a94);border-bottom:1px solid var(--text-dim, #3a3835);padding-bottom:1px}.about-link{color:var(--text-light, #a09a94);text-decoration:underline;text-underline-offset:2px;transition:color .2s ease}.about-link:hover{color:var(--text-bright, #d4d0c8)}.about-list{margin:0;padding-left:1.25rem;color:var(--text-muted, #6b6560);font-size:.85rem;line-height:1.8}.about-list li{margin-bottom:.25rem}.about-photo{margin:2rem 0 .5rem;padding:0;text-align:center}.about-photo img{width:100%;max-width:270px;height:auto;border-radius:4px;opacity:.85;filter:grayscale(20%);transition:opacity .3s ease,filter .3s ease}.about-photo img:hover{opacity:1;filter:grayscale(0%)}
