:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;font-weight:400;color:#1f2937;background-color:#f5f5f7;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}body{margin:0;min-width:320px;min-height:100vh}#root{max-width:600px;margin:0 auto;padding:0}.app{padding:16px 16px 40px}.loading{display:flex;align-items:center;justify-content:center;height:100vh;color:#9ca3af;font-size:18px}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.app-header h1{font-size:24px;font-weight:700;color:#111827}.settings-btn{background:none;border:none;font-size:24px;cursor:pointer;padding:4px 8px;border-radius:8px}.settings-btn:hover{background:#e5e7eb}.card{background:#fff;border-radius:12px;padding:16px;margin-bottom:12px;box-shadow:0 1px 3px #00000014}.progress-card{text-align:center}.progress-header{margin-bottom:12px}.progress-rate{font-size:48px;font-weight:800;line-height:1}.progress-target{font-size:14px;color:#6b7280;margin-top:2px}.scoreboard{display:flex;justify-content:space-around;margin-bottom:16px;flex-wrap:wrap;gap:4px}.score-item{text-align:center;min-width:56px}.score-value{font-size:22px;font-weight:700}.score-label{font-size:11px;color:#9ca3af;text-transform:uppercase;letter-spacing:.5px}.chart-svg{width:100%;height:auto}.chart-label{font-size:9px;fill:#9ca3af}.chart-title{font-size:14px;font-weight:600;color:#374151;margin-bottom:8px}.period-nav{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:12px}.period-nav button{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:6px 14px;font-size:16px;cursor:pointer;color:#374151}.period-nav button:hover{background:#f3f4f6;border-color:#d1d5db}.period-label{font-size:16px;font-weight:600;color:#111827;min-width:180px;text-align:center}.today-btn{font-size:13px!important;padding:4px 10px!important;color:#2563eb!important;border-color:#93c5fd!important}.calendar{background:#fff;border-radius:12px;padding:12px;margin-bottom:12px;box-shadow:0 1px 3px #00000014}.cal-header{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.cal-header-cell{text-align:center;font-size:11px;font-weight:600;color:#9ca3af;text-transform:uppercase;padding:4px 0}.cal-month-label{font-size:12px;font-weight:600;color:#6b7280;padding:8px 4px 4px}.cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;cursor:pointer;position:relative;min-height:40px;transition:transform .1s}.cal-cell:hover{transform:scale(1.05)}.cal-empty{cursor:default;background:transparent!important}.cal-empty:hover{transform:none}.cal-today{outline:2px solid #2563eb;outline-offset:-2px}.cal-selected{outline:2px solid #111827;outline-offset:-2px}.cal-day-num{font-size:13px;font-weight:600;color:#374151}.cal-emoji{font-size:12px;line-height:1}.day-detail{background:#f9fafb;border-radius:8px;padding:12px;margin:4px 0 8px}.day-detail-header{font-size:13px;font-weight:600;color:#374151;margin-bottom:8px}.status-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.status-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border:2px solid transparent;border-radius:10px;cursor:pointer;font-size:12px;font-weight:500;transition:all .15s}.status-btn:hover{transform:scale(1.03)}.status-active{font-weight:700}.settings-overlay{position:fixed;inset:0;background:#0006;z-index:100;display:flex;align-items:flex-end;justify-content:center}.settings-panel{background:#fff;border-radius:16px 16px 0 0;max-width:600px;width:100%;max-height:85vh;overflow-y:auto;padding:20px}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.settings-header h2{font-size:20px;font-weight:700}.close-btn{background:none;border:none;font-size:28px;cursor:pointer;color:#6b7280;padding:0 4px;line-height:1}.settings-section{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #f3f4f6}.settings-label{display:block;font-size:14px;font-weight:600;color:#374151;margin-bottom:8px}.settings-sublabel{display:block;font-size:13px;color:#6b7280;margin-bottom:4px;margin-top:8px}.rto-control{display:flex;align-items:center;gap:12px}.rto-control input[type=range]{flex:1;height:6px;-webkit-appearance:none;appearance:none;background:#e5e7eb;border-radius:3px;outline:none}.rto-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#2563eb;cursor:pointer}.rto-value{font-size:18px;font-weight:700;color:#2563eb;min-width:48px;text-align:right}.radio-group{display:flex;gap:20px}.radio-group label,.toggle-label{display:flex;align-items:center;gap:6px;font-size:14px;color:#374151;cursor:pointer}.toggle-label{margin-bottom:8px}.workday-toggles{display:flex;gap:4px}.workday-btn{flex:1;padding:8px 4px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb;cursor:pointer;font-size:12px;font-weight:500;color:#6b7280;transition:all .15s}.workday-active{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8;font-weight:700}.period-style-group{display:flex;flex-direction:column;gap:6px}.period-style-btn{display:flex;flex-direction:column;align-items:flex-start;padding:10px 12px;border:2px solid #e5e7eb;border-radius:10px;background:#f9fafb;cursor:pointer;text-align:left;transition:all .15s}.period-style-btn:hover{border-color:#93c5fd}.period-style-active{border-color:#2563eb;background:#eff6ff}.period-style-label{font-size:14px;font-weight:600;color:#374151}.period-style-active .period-style-label{color:#1d4ed8}.period-style-desc{font-size:12px;color:#9ca3af;margin-top:2px}.holidays-list{display:flex;flex-direction:column;gap:6px}.holiday-item{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:#f3e8ff;border-radius:6px;font-size:13px;color:#7c3aed}.holiday-remove{background:none;border:none;font-size:18px;cursor:pointer;color:#9333ea;padding:0 4px}.holiday-add{padding:6px 10px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;color:#374151}@media(max-width:400px){.app{padding:10px}.scoreboard{gap:2px}.score-item{min-width:48px}.status-buttons{grid-template-columns:repeat(2,1fr)}}
