:root{--bg-primary: #0a0a1a;--bg-secondary: #1a1a2e;--bg-tertiary: #16213e;--glass-bg: rgba(255, 255, 255, .05);--glass-border: rgba(255, 255, 255, .1);--glass-blur: 16px;--accent-blue: #00d4ff;--accent-purple: #7c3aed;--text-primary: #e0e0e0;--text-muted: #8892a4;--status-green: #00ff88;--status-orange: #ffaa00;--status-red: #ff4466;--radius: 12px;--radius-sm: 8px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 50%,var(--bg-tertiary) 100%);background-attachment:fixed;color:var(--text-primary);min-height:100vh;line-height:1.5}@keyframes pulse-glow{0%,to{opacity:.7}50%{opacity:1}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.layout{max-width:900px;margin:0 auto;padding:24px 16px}.layout-header{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius);padding:16px 24px;margin-bottom:24px}.layout-header h1{font-size:22px;font-weight:700;background:linear-gradient(90deg,var(--accent-blue),var(--accent-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.glass-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius);padding:20px;margin-bottom:16px;animation:fade-in .3s ease-out}.form-label{display:block;font-weight:600;margin-bottom:6px;color:var(--text-muted);font-size:13px;text-transform:uppercase;letter-spacing:.5px}.form-input,.form-select{width:100%;padding:10px 12px;background:#ffffff0d;border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s}.form-input:focus,.form-select:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px #00d4ff26}.form-input::placeholder{color:var(--text-muted)}.form-select{cursor:pointer}.form-select option{background:var(--bg-secondary);color:var(--text-primary);padding:6px}.user-select{margin-bottom:16px}.user-select .form-input{margin-bottom:8px}.user-select .form-select{scrollbar-width:thin;scrollbar-color:var(--accent-blue) transparent}.calendar{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius);padding:16px;margin-bottom:16px;animation:fade-in .3s ease-out}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calendar-header-spacer{flex:1}.calendar-nav{background:none;border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:20px;line-height:1;width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s}.calendar-nav:hover{background:#ffffff14;border-color:var(--accent-blue)}.calendar-panels{display:flex;gap:20px}.calendar-month{flex:1;min-width:0}.calendar-month-title{text-align:center;font-weight:600;font-size:15px;color:var(--text-primary);margin-bottom:10px;-webkit-user-select:none;user-select:none}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-weekday{text-align:center;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;padding:4px 0 8px;-webkit-user-select:none;user-select:none}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:13px;border:none;background:none;color:var(--text-primary);border-radius:50%;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s;-webkit-user-select:none;user-select:none;position:relative}.calendar-day:hover:not(.calendar-day--selected){background:#ffffff1a}.calendar-day--outside{color:var(--text-muted);opacity:.35}.calendar-day--today{box-shadow:inset 0 0 0 1.5px var(--accent-blue)}.calendar-day--selected{background:var(--accent-blue);color:#0a0a1a;font-weight:700;box-shadow:0 0 10px #00d4ff66}.calendar-day--in-range{background:#00d4ff26;border-radius:4px}.calendar-range-label{text-align:center;margin-top:12px;font-size:13px;color:var(--text-muted);padding-top:10px;border-top:1px solid var(--glass-border)}.btn-primary{padding:10px 28px;font-size:15px;font-weight:600;border:none;border-radius:var(--radius-sm);color:#fff;background:linear-gradient(135deg,var(--accent-blue),var(--accent-purple));cursor:pointer;transition:box-shadow .2s,transform .1s,opacity .2s;position:relative}.btn-primary:hover:not(:disabled){box-shadow:0 0 20px #00d4ff66,0 0 40px #7c3aed33;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.4;cursor:not-allowed;background:linear-gradient(135deg,#3a3a5c,#2a2a4c)}.progress-box{margin-top:16px;padding:14px 18px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid rgba(0,212,255,.2);border-radius:var(--radius-sm);display:flex;align-items:center;gap:10px;animation:fade-in .3s ease-out}.progress-indicator{width:10px;height:10px;border-radius:50%;background:var(--accent-blue);animation:pulse-glow 1.2s ease-in-out infinite;box-shadow:0 0 8px var(--accent-blue)}.progress-text{color:var(--accent-blue);font-size:14px}.warning-box{margin-bottom:12px;padding:14px 18px;background:#ffaa001a;border:1px solid rgba(255,170,0,.3);border-radius:var(--radius-sm);color:var(--status-orange);font-size:14px;animation:fade-in .3s ease-out}.error-box{margin-top:16px;padding:14px 18px;background:#ff44661a;border:1px solid rgba(255,68,102,.3);border-radius:var(--radius-sm);color:var(--status-red);animation:fade-in .3s ease-out}.report-section{margin-top:24px;animation:fade-in .4s ease-out}.report-card{position:relative}.report-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--glass-border)}.report-card-title{font-size:18px;font-weight:700;margin-bottom:2px}.report-card-period{color:var(--text-muted);font-size:14px}.btn-copy{flex-shrink:0;padding:6px 14px;font-size:13px;font-weight:600;border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:#ffffff0d;color:var(--text-muted);cursor:pointer;transition:background .2s,color .2s,border-color .2s;white-space:nowrap}.btn-copy:hover{background:#ffffff1a;color:var(--text-primary);border-color:var(--accent-blue)}.report-card-list{padding-left:20px;margin:0}.report-card-list li{padding:6px 0;font-size:14px;line-height:1.5}.report-card-list li::marker{color:var(--text-muted)}.report-card-summary{margin-top:16px;padding-top:12px;border-top:1px solid var(--glass-border);color:var(--text-muted);font-size:14px;line-height:1.5}.loading-text{color:var(--text-muted);animation:pulse-glow 1.5s ease-in-out infinite}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}.target-amount-input{margin-bottom:16px}.target-amount-input .form-input{max-width:300px}.task-checkbox-list{margin-bottom:8px}.task-checkbox-list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.task-checkbox-list-header .form-label{margin-bottom:0}.task-checkbox-actions{display:flex;gap:12px}.btn-link{background:none;border:none;color:var(--accent-blue);cursor:pointer;font-size:13px;padding:0;text-decoration:underline;text-underline-offset:2px}.btn-link:hover{color:var(--text-primary)}.task-checkbox-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s}.task-checkbox-item:hover{background:#ffffff0a}.task-checkbox-item input[type=checkbox]{accent-color:var(--accent-blue);width:16px;height:16px;flex-shrink:0}.task-checkbox-title{flex:1;font-size:14px;line-height:1.4}.task-checkbox-weight{flex-shrink:0;font-size:12px;color:var(--text-muted);background:#ffffff0d;padding:2px 8px;border-radius:4px}.act-table-wrapper{animation:fade-in .4s ease-out}.act-table-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--glass-border)}.act-table-header h3{font-size:16px;font-weight:700}.act-table{width:100%;border-collapse:collapse;font-size:14px}.act-table th,.act-table td{padding:10px 12px;border:1px solid var(--glass-border);text-align:left}.act-table th{background:#ffffff0d;font-weight:600;font-size:13px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.act-table td:nth-child(1),.act-table td:nth-child(3),.act-table td:nth-child(4){text-align:center;white-space:nowrap}.act-table td:nth-child(5),.act-table td:nth-child(6){text-align:right;white-space:nowrap}.act-table th:nth-child(5),.act-table th:nth-child(6){text-align:right}.act-table th:nth-child(1),.act-table th:nth-child(3),.act-table th:nth-child(4){text-align:center}.act-table tfoot td{border-top:2px solid var(--accent-blue)}.act-table tfoot strong{color:var(--accent-blue)}
