:root{--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--bg-primary:#0f1117;--bg-secondary:#181b24d9;--bg-card:#1e2230b3;--bg-card-hover:#262b3acc;--bg-input:#181b24e6;--bg-overlay:#0009;--accent:#6c8cff;--accent-glow:#6c8cff26;--accent-hover:#8ba4ff;--success:#34d399;--danger:#f87171;--warning:#fbbf24;--text-primary:#e8eaed;--text-secondary:#9ca3af;--text-muted:#6b7280;--text-accent:#6c8cff;--border:#2a2e3b;--border-hover:#3b4254;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 30px #00000080;--transition:.15s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);color:var(--text-primary);background:var(--bg-primary);min-height:100vh;line-height:1.5;position:relative}body:before{content:"";z-index:-2;background:url(/background.jpeg) 50%/contain no-repeat;position:fixed;inset:0}body:after{content:"";z-index:-1;background:#0f1117c7;position:fixed;inset:0}.app{max-width:720px;margin:0 auto;padding:16px 16px 40px}.app-loading{justify-content:center;align-items:center;min-height:100vh;display:flex}.loading-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.top-bar{justify-content:space-between;align-items:center;margin-bottom:16px;padding:8px 0;display:flex}.month-nav{align-items:center;gap:8px;display:flex}.month-title{text-align:center;letter-spacing:-.01em;min-width:180px;font-size:1.15rem;font-weight:600}.nav-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;width:36px;height:36px;transition:background var(--transition), border-color var(--transition);justify-content:center;align-items:center;font-size:1.3rem;display:flex}.nav-btn:hover{background:var(--bg-card-hover);border-color:var(--border-hover)}.top-bar-actions{gap:6px;display:flex}.btn{font-family:var(--font-family);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition), color var(--transition), opacity var(--transition);border:none;padding:8px 16px;font-size:.875rem;font-weight:500;line-height:1.4}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--border-hover)}.btn-ghost{color:var(--text-secondary);background:0 0;padding:8px 12px}.btn-ghost:hover{color:var(--text-primary);background:var(--bg-card)}.btn-danger{color:var(--danger);border:1px solid var(--danger);background:0 0}.btn-danger:hover{background:#f871711a}.dashboard{margin-bottom:20px}.dashboard-title{display:none}.progress-section{align-items:center;gap:12px;margin-bottom:16px;display:flex}.progress-bar-container{background:var(--bg-card);border-radius:100px;flex:1;height:8px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--accent), #a78bfa);border-radius:100px;min-width:0;height:100%;transition:width .4s}.progress-label{color:var(--text-accent);text-align:right;min-width:46px;font-size:.85rem;font-weight:600}.stats-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stat-card{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center;padding:14px 12px}.stat-card.highlight{border-color:var(--accent);background:var(--accent-glow)}.stat-value{letter-spacing:-.02em;font-size:1.3rem;font-weight:700;line-height:1.2;display:block}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:4px;font-size:.72rem;font-weight:500;display:block}.calendar{margin-bottom:16px}.calendar-header{grid-template-columns:repeat(8,1fr);gap:4px;margin-bottom:4px;display:grid}.calendar-day-name{text-align:center;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;padding:6px 0;font-size:.72rem;font-weight:600}.calendar-grid{grid-template-columns:repeat(8,1fr);gap:4px;display:grid}.calendar-cell{aspect-ratio:1;background:var(--bg-card);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition), border-color var(--transition), transform .1s ease;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:56px;display:flex;position:relative}.calendar-cell:hover{background:var(--bg-card-hover);border-color:var(--border-hover);transform:scale(1.03)}.calendar-cell.empty{cursor:default;pointer-events:none;background:0 0;border-color:#0000}.calendar-cell.total{cursor:default;pointer-events:none;background:#0f111780;border-color:#0000}.calendar-cell.total .cell-day{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.65rem}.calendar-cell.total .cell-hours{color:var(--text-primary);font-size:.85rem}.calendar-cell.non-working{background:var(--bg-secondary);opacity:.55}.calendar-cell.non-working:hover{opacity:.8;background:var(--bg-card)}.calendar-cell.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.calendar-cell.has-entry{background:var(--accent-glow);border-color:#6c8cff4d}.calendar-cell.has-entry:hover{border-color:var(--accent)}.cell-day{color:var(--text-primary);font-size:.82rem;font-weight:600;line-height:1}.cell-hours{color:var(--accent);font-size:.68rem;font-weight:600;line-height:1}.cell-badge{font-size:.6rem;line-height:1;position:absolute;top:2px;right:3px}.modal-overlay{background:var(--bg-overlay);z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:center;padding:16px;animation:.15s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-secondary);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:var(--shadow-lg);animation:.2s slideUp}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.modal-settings{max-width:440px}.modal-header{justify-content:space-between;align-items:center;padding:18px 20px 0;display:flex}.modal-header h2{font-size:1.05rem;font-weight:600}.modal-close{color:var(--text-muted);cursor:pointer;transition:color var(--transition);background:0 0;border:none;padding:4px;font-size:1.1rem;line-height:1}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:16px 20px}.modal-label{color:var(--text-secondary);margin-bottom:6px;font-size:.82rem;font-weight:500;display:block}.modal-input{font-family:var(--font-family);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);transition:border-color var(--transition);outline:none;padding:10px 12px;font-size:1rem}.modal-input:focus{border-color:var(--accent)}.modal-textarea{font-family:var(--font-family);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);resize:vertical;transition:border-color var(--transition);outline:none;padding:10px 12px;font-size:.875rem}.modal-textarea:focus{border-color:var(--accent)}.modal-error{color:var(--danger);margin-top:6px;font-size:.8rem}.modal-actions{justify-content:space-between;align-items:center;gap:8px;padding:12px 20px 18px;display:flex}.modal-actions-right{gap:8px;margin-left:auto;display:flex}.settings-group{margin-bottom:16px}.settings-group:last-child{margin-bottom:0}.settings-hint{color:var(--text-muted);margin-top:4px;font-size:.75rem}.settings-divider{border:none;border-top:1px solid var(--border);margin:16px 0}.settings-backup-buttons{gap:8px;display:flex}.checkbox-label{cursor:pointer;align-items:center;gap:8px;font-size:.875rem;display:flex}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.app-footer{text-align:center;color:var(--text-muted);padding:12px 0;font-size:.75rem}@media (max-width:480px){.app{padding:12px}.month-title{min-width:140px;font-size:1rem}.stats-grid{grid-template-columns:repeat(3,1fr);gap:6px}.stat-card{padding:10px 6px}.stat-value{font-size:1.1rem}.stat-label{font-size:.65rem}.calendar-cell{min-height:40px}.cell-day{font-size:.7rem}.cell-hours{font-size:.58rem}.calendar-day-name{padding:4px 0;font-size:.6rem}.calendar-cell.total .cell-day{font-size:.55rem}.calendar-cell.total .cell-hours{font-size:.7rem}.modal{max-width:100%}}@media (max-width:360px){.stats-grid{grid-template-columns:repeat(2,1fr)}}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.app.lock-screen{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.lock-container{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--radius-xl);text-align:center;width:100%;max-width:400px;box-shadow:var(--shadow-lg);padding:40px 24px;animation:.4s cubic-bezier(.16,1,.3,1) slideUp}.lock-quote{color:#fff;letter-spacing:-.02em;margin-bottom:32px;font-size:1.5rem;font-weight:600;line-height:1.3}.lock-form{flex-direction:column;gap:16px;display:flex}.lock-input{text-align:center;letter-spacing:.1em;font-size:1.1rem}.lock-input.error{border-color:var(--danger);animation:.3s shake}.lock-btn{border-radius:var(--radius-md);padding:12px;font-size:1rem}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}
