*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0d1117;--surface:#161b22;--surface2:#21262d;--surface3:#2d333b;--border:#30363d;--border2:#444c56;--text:#e6edf3;--text2:#adbac7;--muted:#545d68;--accent:#58a6ff;--radius:8px;--font:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif}body,html{height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}body,button{font-family:var(--font)}button{cursor:pointer;border:none;outline:none}input,textarea{font-family:var(--font)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.app{grid-template-rows:56px 1fr;height:100vh;background:var(--bg)}.app,.app-body{display:grid;overflow:hidden}.app-body{grid-template-columns:1fr 360px}@media (max-width:768px){.app-body{grid-template-columns:1fr;grid-template-rows:1fr auto}}.app-header{justify-content:space-between;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--border);gap:16px;z-index:10}.app-header,.header-brand{display:flex;align-items:center}.header-brand{gap:8px;flex-shrink:0}.brand-icon{font-size:20px}.brand-name{font-size:16px;font-weight:700;color:var(--text);letter-spacing:-.3px}.header-date-nav{gap:12px;flex:1 1}.header-date-nav,.nav-arrow{display:flex;align-items:center;justify-content:center}.nav-arrow{background:var(--surface2);color:var(--text2);border:1px solid var(--border);border-radius:6px;width:32px;height:32px;font-size:20px;line-height:1;transition:background .15s,color .15s;padding:0}.nav-arrow:hover{background:var(--surface3);color:var(--text)}.header-date{display:flex;flex-direction:column;align-items:center;min-width:160px}.date-label{font-size:15px;font-weight:600;color:var(--text)}.date-full{font-size:11px;color:var(--muted)}.today-pill{background:var(--accent);color:#fff;border-radius:12px;padding:3px 10px;font-size:12px;font-weight:600;transition:opacity .15s}.today-pill:hover{opacity:.85}.header-actions{flex-shrink:0;display:flex;align-items:center;gap:8px}.add-activity-btn{background:var(--accent);color:#fff;border-radius:var(--radius);padding:7px 16px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px;transition:opacity .15s,transform .1s}.add-activity-btn:hover{opacity:.9;transform:translateY(-1px)}.add-activity-btn:active{transform:translateY(0)}.timeline-section{display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--border)}.timeline-scroll{flex:1 1;overflow-y:auto;overflow-x:hidden;padding-bottom:32px}.timeline-body{position:relative;width:100%}.hour-row{position:absolute;left:0;right:0;display:flex;align-items:flex-start;pointer-events:none;z-index:1}.hour-label{width:64px;text-align:right;padding-right:10px;font-size:10px;font-weight:500;color:var(--muted);line-height:1;flex-shrink:0;transform:translateY(-50%);-webkit-user-select:none;-moz-user-select:none;user-select:none}.hour-row:first-child .hour-label{transform:translateY(0)}.hour-line{flex:1 1;height:1px;background:var(--border)}.half-hour-row{position:absolute;left:64px;right:0;height:1px;background:var(--surface2);pointer-events:none;z-index:1}.misc-block{position:absolute;z-index:2;border-radius:4px;cursor:pointer;background:repeating-linear-gradient(45deg,#1a1d26,#1a1d26 4px,#1d2030 0,#1d2030 8px);border:1px dashed var(--border);transition:border-color .15s,background .15s;min-height:4px}.misc-block:hover{border-color:var(--border2);background:repeating-linear-gradient(45deg,#21262d,#21262d 4px,#252b38 0,#252b38 8px)}.misc-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:2px;padding:4px}.misc-hint{font-size:11px;color:var(--muted);opacity:0;transition:opacity .15s}.misc-block:hover .misc-hint{opacity:1}.misc-duration{font-size:10px;color:var(--muted);opacity:.7}.timeline-block{position:absolute;z-index:3;border-radius:5px;cursor:pointer;overflow:hidden;transition:filter .15s,transform .1s}.timeline-block:hover{filter:brightness(1.15);transform:scaleX(1.01);z-index:4}.block-inner{padding:5px 8px;height:100%;display:flex;flex-direction:column;gap:2px;overflow:hidden}.block-top{display:flex;align-items:center;gap:5px;min-height:18px}.block-icon{font-size:12px;flex-shrink:0}.block-label{font-size:12px;font-weight:600;flex:1 1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.block-duration{font-size:10px;opacity:.8;flex-shrink:0}.block-delete{opacity:0;background:rgba(0,0,0,.4);color:inherit;border-radius:3px;width:16px;height:16px;font-size:14px;display:flex;align-items:center;justify-content:center;transition:opacity .15s;flex-shrink:0;padding:0}.timeline-block:hover .block-delete{opacity:1}.block-delete:hover{background:rgba(0,0,0,.7)!important}.block-time{opacity:.75}.block-notes,.block-time{font-size:10px;white-space:nowrap}.block-notes{opacity:.65;overflow:hidden;text-overflow:ellipsis}.now-line{position:absolute;left:64px;right:0;display:flex;align-items:center;z-index:10;pointer-events:none}.now-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-left:-5px;box-shadow:0 0 0 3px rgba(239,68,68,.25)}.now-bar,.now-dot{background:#ef4444}.now-bar{flex:1 1;height:2px;opacity:.8}.summary-panel{background:var(--surface);overflow-y:auto;display:flex;flex-direction:column}.summary-ring-section{display:flex;align-items:center;gap:20px;padding:20px;border-bottom:1px solid var(--border)}.ring-wrapper{position:relative;width:88px;height:88px;flex-shrink:0}.ring-svg{width:88px;height:88px;transform:rotate(-90deg)}.ring-track{fill:none;stroke:var(--surface3);stroke-width:8}.ring-fill{fill:none;stroke:var(--accent);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .5s ease}.ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring-pct{font-size:18px;font-weight:700;color:var(--text);line-height:1}.ring-sub{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.ring-stats{gap:12px}.ring-stat,.ring-stats{display:flex;flex-direction:column}.rs-value{font-size:18px;font-weight:700;color:var(--text);line-height:1}.rs-label,.rs-value--muted{color:var(--muted)}.rs-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px}.summary-section{padding:16px 20px;border-bottom:1px solid var(--border)}.summary-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);margin-bottom:12px}.category-list{gap:10px}.cat-row,.category-list{display:flex;flex-direction:column}.cat-row{gap:4px}.cat-row-top{display:flex;align-items:center;gap:8px}.cat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.cat-name{flex:1 1;font-size:12px;color:var(--text2)}.cat-time{font-size:12px;font-weight:600;color:var(--text)}.cat-time--muted{color:var(--muted)}.cat-bar-track{height:3px;background:var(--surface3);border-radius:2px;overflow:hidden}.cat-bar-fill{height:100%;border-radius:2px;transition:width .4s ease}.no-activities{font-size:12px;color:var(--muted);text-align:center;padding:20px 0;line-height:1.8}.activity-list{display:flex;flex-direction:column;gap:6px}.activity-item{background:var(--surface2);border-radius:6px;padding:9px 12px;cursor:pointer;transition:background .15s;border-left:3px solid transparent}.activity-item:hover{background:var(--surface3)}.activity-item-top{display:flex;align-items:center;gap:6px}.ai-icon,.ai-name{font-size:13px}.ai-name{flex:1 1;font-weight:600;color:var(--text)}.ai-dur{font-size:11px;color:var(--text2);font-weight:500}.ai-del{background:transparent;color:var(--muted);font-size:16px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:3px;opacity:0;transition:opacity .15s,background .15s;padding:0}.activity-item:hover .ai-del{opacity:1}.ai-del:hover{background:rgba(239,68,68,.2);color:#ef4444}.activity-item-time{font-size:11px;color:var(--muted);margin-top:2px}.activity-item-notes{font-size:11px;color:var(--text2);margin-top:3px;opacity:.8}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:var(--surface);border:1px solid var(--border2);border-radius:14px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 80px rgba(0,0,0,.6);animation:modalIn .2s ease}@keyframes modalIn{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:16px;font-weight:700;color:var(--text)}.modal-close{background:var(--surface2);color:var(--text2);border-radius:6px;width:30px;height:30px;font-size:20px;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;padding:0}.modal-close:hover{background:var(--surface3);color:var(--text)}.modal-body{padding:20px 24px;display:flex;flex-direction:column;gap:16px}.field-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:8px}.category-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.cat-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border-radius:8px;transition:transform .1s;outline-offset:0}.cat-btn:hover{transform:translateY(-2px)}.cat-btn--active{outline-offset:2px}.cat-btn-icon{font-size:18px;line-height:1}.cat-btn-label{font-size:9px;font-weight:600;text-align:center;letter-spacing:.2px;line-height:1.2}.time-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.time-field{display:flex;flex-direction:column}.time-input{background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius);color:var(--text);font-size:20px;font-weight:600;padding:10px 14px;width:130px;transition:border-color .15s}.time-input:focus{outline:none;border-color:var(--accent)}.time-input::-webkit-calendar-picker-indicator{filter:invert(.6);cursor:pointer}.time-arrow{font-size:18px;color:var(--muted);padding-bottom:10px}.duration-badge{background:var(--surface3);color:var(--text2);border-radius:20px;padding:4px 10px;font-size:12px;font-weight:600;align-self:flex-end;margin-bottom:10px}.notes-input{background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius);color:var(--text);font-size:13px;padding:10px 14px;resize:vertical;min-height:60px;transition:border-color .15s;width:100%}.notes-input:focus{outline:none;border-color:var(--accent)}.notes-input::placeholder{color:var(--muted)}.form-error{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:#f87171;border-radius:var(--radius);padding:10px 14px;font-size:12px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--border)}.btn-cancel{background:var(--surface2);color:var(--text2);border:1px solid var(--border);border-radius:var(--radius);padding:9px 20px;font-size:13px;font-weight:500;transition:background .15s}.btn-cancel:hover{background:var(--surface3)}.btn-save{background:var(--accent);color:#fff;border-radius:var(--radius);padding:9px 24px;font-size:13px;font-weight:600;transition:opacity .15s,transform .1s}.btn-save:hover{opacity:.9;transform:translateY(-1px)}.btn-save:active{transform:translateY(0)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:20px;overflow:auto}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:40px;width:100%;max-width:420px;box-shadow:0 24px 80px rgba(0,0,0,.4)}.auth-title{font-size:20px;font-weight:700;color:var(--text);margin-bottom:24px}.auth-form{gap:16px}.auth-field,.auth-form{display:flex;flex-direction:column}.auth-field{gap:6px}.auth-input{background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius);color:var(--text);font-size:14px;padding:10px 14px;width:100%;transition:border-color .15s}.auth-input:focus{outline:none;border-color:var(--accent)}.auth-input::placeholder{color:var(--muted)}.auth-submit{width:100%;justify-content:center;padding:11px;margin-top:4px}.auth-switch{text-align:center;margin-top:20px;font-size:13px;color:var(--muted)}.auth-link{color:var(--accent);text-decoration:none}.auth-link:hover{text-decoration:underline}.header-user{font-size:12px;color:var(--muted);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-logout{background:var(--surface2);color:var(--text2);border:1px solid var(--border);border-radius:var(--radius);padding:5px 12px;font-size:12px;transition:background .15s,color .15s,border-color .15s}.btn-logout:hover{background:rgba(239,68,68,.15);color:#f87171;border-color:rgba(239,68,68,.3)}.categories-btn{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);width:34px;height:34px;font-size:16px;display:flex;align-items:center;justify-content:center;transition:background .15s}.categories-btn:hover{background:var(--surface3)}