*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f0f12;--bg2:#1a1a20;--bg3:#252530;--border:#2e2e3a;--text:#e8e8f0;--text2:#9090a8;--accent:#7c6af7;--accent-hover:#6a58e0;--danger:#e05555;--success:#4caf6e;--radius:8px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);font-size:15px;line-height:1.5}#root{min-height:100%}.page{flex-direction:column;min-height:100vh;display:flex}.header{z-index:10;background:var(--bg2);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;display:flex;position:sticky;top:0}.header-nav{align-items:center;gap:6px;display:flex}.header-date-label{color:var(--text2);flex:1;font-size:14px}.header-actions{gap:4px;margin-left:auto;display:flex}.page-title{flex:1;font-size:17px;font-weight:600}.content{flex-direction:column;flex:1;gap:24px;width:100%;max-width:700px;margin:0 auto;padding:16px;display:flex}.section{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section h2{color:var(--text);font-size:15px;font-weight:600}.item-list{flex-direction:column;gap:6px;display:flex}.empty-hint{color:var(--text2);padding:8px 0;font-size:13px}.plan-row,.actual-row{align-items:flex-start;gap:8px;display:flex}.item-textarea{background:var(--bg3);border:1px solid var(--border);color:var(--text);font-size:14px;font-family:var(--font);border-radius:6px;width:100%;padding:7px 10px;line-height:1.4;transition:border-color .15s}.item-textarea:focus{border-color:var(--accent);outline:none}.item-textarea::placeholder{color:var(--text2)}.time-textarea{flex-shrink:0;width:80px;min-width:80px}.activity-textarea{flex:1}.big-textarea{background:var(--bg3);border:1px solid var(--border);width:100%;color:var(--text);font-size:14px;font-family:var(--font);resize:vertical;border-radius:6px;padding:10px 12px;line-height:1.6}.big-textarea:focus{border-color:var(--accent);outline:none}.big-textarea::placeholder{color:var(--text2)}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:9px 18px;font-size:14px;font-weight:600;transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.add-btn{border:1px solid var(--border);color:var(--text2);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-size:13px;transition:all .15s}.add-btn:hover{border-color:var(--accent);color:var(--accent)}.remove-btn{color:var(--text2);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:18px;line-height:1;transition:color .15s}.remove-btn:hover{color:var(--danger)}.icon-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-size:18px;line-height:1;transition:all .15s}.icon-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.link-btn{color:var(--text2);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:13px;transition:color .15s}.link-btn:hover{color:var(--text)}.date-input{background:var(--bg3);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;padding:4px 8px;font-size:14px}.date-input:focus{border-color:var(--accent);outline:none}.copy-section h2{margin-bottom:12px}.copy-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.copy-row label{color:var(--text2);font-size:14px}.days-input{background:var(--bg3);border:1px solid var(--border);color:var(--text);text-align:center;border-radius:6px;width:64px;padding:6px 10px;font-size:14px}.days-input:focus{border-color:var(--accent);outline:none}.copy-btn{padding:7px 20px}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:380px;padding:32px}.login-card h1{margin-bottom:4px;font-size:20px;font-weight:700}.login-subtitle{color:var(--text2);margin-bottom:24px;font-size:14px}.form-group{margin-bottom:16px}.form-group label{color:var(--text2);margin-bottom:6px;font-size:13px;display:block}.form-group input{background:var(--bg3);border:1px solid var(--border);width:100%;color:var(--text);border-radius:6px;padding:9px 12px;font-size:14px}.form-group input:focus{border-color:var(--accent);outline:none}.error-msg{color:var(--danger);margin-bottom:12px;font-size:13px}.login-card .btn-primary{width:100%;margin-top:4px}.field-label{margin-bottom:4px;font-size:14px;font-weight:600;display:block}.field-hint{color:var(--text2);margin-bottom:8px;font-size:12px;font-weight:400;display:block}.save-btn{margin-top:4px}.history-list{flex-direction:column;gap:6px;display:flex}.history-row{background:var(--bg3);border:1px solid var(--border);cursor:pointer;color:var(--text);text-align:left;border-radius:6px;justify-content:space-between;align-items:center;width:100%;padding:12px 14px;font-size:14px;transition:border-color .15s;display:flex}.history-row:hover{border-color:var(--accent)}.history-date{font-weight:500}.history-counts{color:var(--text2);font-size:13px}.toast{background:var(--success);color:#fff;z-index:100;border-radius:20px;padding:10px 22px;font-size:14px;font-weight:600;animation:.2s fadeIn;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0006}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.loading{min-height:100vh;color:var(--text2);justify-content:center;align-items:center;font-size:14px;display:flex}.fetching-dot{background:var(--accent);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-left:8px;animation:1s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}@media (width<=480px){.header{gap:8px;padding:8px 12px}.header-actions{gap:0}.content{gap:16px;padding:12px}.section{padding:12px}.copy-row{gap:8px}}
