@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@300;400;500;600&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f0f11;--surface: #1a1a1f;--surface2: #222228;--border: rgba(255,255,255,.07);--border2: rgba(255,255,255,.13);--text: #f0f0f2;--muted: #666672;--accent: #c8f060;--accent-dim: rgba(200,240,96,.12);--accent-glow: rgba(200,240,96,.25);--red: #f06060;--red-dim: rgba(240,96,96,.12);--font: "DM Sans", sans-serif;--mono: "DM Mono", monospace;--radius: 14px;--radius-sm: 8px}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:2rem 1rem 4rem}h1{font-size:13px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:2.5rem;margin-top:.5rem}.layout{width:100%;max-width:860px;display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:640px){.layout{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.card-label{font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}select{flex:1;background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);font-size:14px;padding:0 32px 0 12px;height:40px;outline:none;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666672' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}select:focus{border-color:var(--accent)}select option{background:#1a1a1f}.btn-icon{height:32px;padding:0 12px;background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius-sm);color:var(--muted);font-family:var(--font);font-size:13px;cursor:pointer;transition:color .15s,border-color .15s;display:flex;align-items:center;gap:5px;white-space:nowrap}.btn-icon:hover{color:var(--text);border-color:var(--border2)}.btn-primary{height:44px;background:var(--accent);border:none;border-radius:var(--radius-sm);color:#0f0f11;font-family:var(--font);font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s;display:flex;align-items:center;justify-content:center;gap:7px}.btn-primary:hover{opacity:.88}.btn-primary:active{transform:scale(.98)}.btn-outline{height:44px;background:transparent;border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--accent);font-family:var(--font);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s;display:flex;align-items:center;justify-content:center;gap:7px}.btn-outline:hover{background:var(--accent-dim)}.btn-outline:disabled{opacity:.3;cursor:not-allowed}.timer-card{display:flex;flex-direction:column;gap:1.25rem}.subject-row{display:flex;gap:8px}.btn-add{height:40px;padding:0 14px;background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius-sm);color:var(--muted);font-family:var(--font);font-size:20px;cursor:pointer;transition:color .15s,border-color .15s;line-height:1}.btn-add:hover{color:var(--accent);border-color:var(--accent)}.timer-display{text-align:center;padding:1.5rem 0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);position:relative;overflow:hidden}.timer-display:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 120%,var(--accent-glow) 0%,transparent 70%);opacity:0;transition:opacity .4s;pointer-events:none}.timer-display.running:before{opacity:1}.timer-digits{font-family:var(--mono);font-size:54px;font-weight:400;letter-spacing:-1px;color:var(--text);line-height:1;transition:color .3s}.timer-display.running .timer-digits{color:var(--accent)}.timer-badge{font-size:12px;color:var(--muted);margin-top:8px;min-height:16px;transition:color .3s}.timer-display.running .timer-badge{color:var(--accent);opacity:.7}.btn-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.history-card{display:flex;flex-direction:column}.chart-area{display:flex;flex-direction:column;gap:6px}.day-row{display:grid;grid-template-columns:52px 1fr 54px;align-items:center;gap:10px;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:none}}.day-label{font-size:12px;color:var(--muted);text-align:right}.day-label.today{color:var(--accent);font-weight:500}.bar-track{height:22px;background:var(--surface2);border-radius:4px;overflow:hidden}.bar-fill{height:100%;border-radius:4px;background:var(--accent);opacity:.25;transition:width .6s cubic-bezier(.22,1,.36,1);position:relative}.bar-fill.today-bar{opacity:1}.bar-dots{display:flex;gap:3px;position:absolute;left:8px;top:50%;transform:translateY(-50%)}.sdot{width:6px;height:6px;border-radius:50%;opacity:.8}.day-mins{font-size:12px;font-family:var(--mono);color:var(--muted);text-align:right}.day-mins.today{color:var(--accent)}.breakdown{grid-column:1 / -1}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:1rem}.stat{background:var(--surface2);border-radius:var(--radius-sm);padding:.85rem 1rem}.stat-val{font-family:var(--mono);font-size:26px;color:var(--accent);line-height:1}.stat-lbl{font-size:12px;color:var(--muted);margin-top:4px}.sub-breakdown{display:flex;flex-direction:column;gap:6px;margin-top:12px}.sub-row{display:grid;grid-template-columns:10px 1fr 1fr 52px;align-items:center;gap:8px;font-size:13px}.sub-bar-track{height:4px;background:var(--surface2);border-radius:2px;overflow:hidden}.sub-bar-fill{height:100%;border-radius:2px;transition:width .5s ease}.sub-name{color:var(--text)}.sub-time{color:var(--muted);font-family:var(--mono);font-size:12px;text-align:right}.logs-card{grid-column:1 / -1}.logs-list{display:flex;flex-direction:column;gap:6px}.log-entry{display:grid;grid-template-columns:10px 1fr auto auto auto;align-items:center;gap:12px;padding:11px 14px;background:var(--surface2);border-radius:var(--radius-sm);border:1px solid var(--border);animation:fadeIn .25s ease}.log-subject{font-size:14px;color:var(--text)}.log-date{font-size:12px;color:var(--muted)}.log-time{font-size:13px;font-family:var(--mono);color:var(--muted);min-width:44px;text-align:right}.btn-delete{background:none;border:none;cursor:pointer;color:var(--muted);padding:4px;border-radius:4px;display:flex;align-items:center;transition:color .15s,background .15s}.btn-delete:hover{color:var(--red);background:var(--red-dim)}.empty-state{text-align:center;padding:2rem 0;font-size:13px;color:var(--muted);line-height:1.7}.weekly-card{grid-column:1 / -1}.week-rows{display:flex;flex-direction:column;gap:10px}.week-row{display:grid;grid-template-columns:110px 1fr 70px 80px;align-items:center;gap:14px;animation:fadeIn .3s ease}.week-label{font-size:13px;color:var(--text);white-space:nowrap}.week-label small{display:block;font-size:11px;color:var(--muted);margin-top:1px}.week-bar-track{height:28px;background:var(--surface2);border-radius:6px;overflow:hidden}.week-bar-fill{height:100%;border-radius:6px;transition:width .7s cubic-bezier(.22,1,.36,1);display:flex;align-items:center;padding-left:10px}.week-bar-fill span{font-size:12px;font-family:var(--mono);font-weight:500;white-space:nowrap}.week-total{font-family:var(--mono);font-size:14px;color:var(--text);text-align:right}.week-badge{font-size:12px;font-weight:500;padding:4px 9px;border-radius:20px;text-align:center;white-space:nowrap;font-family:var(--mono)}.week-badge.up{background:#60c86026;color:#60c860}.week-badge.down{background:#f0606021;color:#f06060}.week-badge.flat{background:var(--surface2);color:var(--muted)}.week-badge.curr{background:var(--accent-dim);color:var(--accent);font-size:11px}.modal-overlay{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s}.modal-overlay.open{opacity:1;pointer-events:all}.modal{background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius);padding:1.5rem;width:340px;transform:scale(.96);transition:transform .2s}.modal-overlay.open .modal{transform:scale(1)}.modal h3{font-size:15px;font-weight:500;margin-bottom:1.25rem}.modal-field{margin-bottom:1rem}.modal-field label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}.modal-field input,.modal-field select{width:100%;background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);font-size:14px;padding:10px 12px;outline:none;height:auto;appearance:auto;background-image:none}.modal-field input:focus,.modal-field select:focus{border-color:var(--accent)}.modal-field input[type=number]::-webkit-inner-spin-button{opacity:.4}.time-inputs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.modal-btns{display:flex;gap:8px;justify-content:flex-end;margin-top:1.25rem}.modal-btns button{padding:9px 18px;border-radius:var(--radius-sm);font-family:var(--font);font-size:13px;cursor:pointer}.modal-cancel{background:var(--surface2);border:1px solid var(--border);color:var(--muted)}.modal-confirm{background:var(--accent);border:none;color:#0f0f11;font-weight:600}.toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%) translateY(20px);background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius-sm);padding:10px 18px;font-size:13px;color:var(--text);opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;white-space:nowrap;z-index:200}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}
