html{scrollbar-gutter:stable;background-color:#f1f5f9}:root{--color-primary:#f28b78;--color-primary-light:#fee2e2;--color-primary-dark:#b91c1c;--color-secondary:#64748b;--color-background:#f8fafc;--color-surface:#fff;--color-text:#1e293b;--color-text-light:#64748b;--color-text-muted:#94a3b8;--color-border:#e2e8f0;--color-success:#10b981;--color-warning:#f59e0b;--color-danger:#ef4444;--color-private:#fff7ed;--color-private-text:#9a3412;--color-temp-active-bg:#ffe4e6;--color-temp-active-text:#e11d48;--color-temp-normal-bg:#e0f2fe;--color-temp-normal-text:#0284c7;--color-temp-open-bg:#fef3c7;--color-temp-open-text:#d97706;--color-temp-pause-bg:#f1f5f9;--color-temp-pause-text:#64748b;--border-radius-sm:8px;--border-radius-md:16px;--border-radius-lg:24px;--border-radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-text);background-color:#f1f5f9;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}#root{background-color:#f8fafc;max-width:480px;min-height:100vh;margin:0 auto;position:relative;box-shadow:0 0 40px #00000008}.flex-row{flex-direction:row;align-items:center;display:flex}.flex-column{flex-direction:column;display:flex}.align-center{align-items:center}.mb-xl{margin-bottom:32px}.mt-xs{margin-top:4px}.switch{width:40px;height:22px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.header-inline{align-items:center;gap:8px;display:inline-flex}.truncate-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.card{background-color:var(--color-surface);border-radius:var(--border-radius-md);margin-bottom:var(--spacing-sm);border:1px solid var(--color-border);padding:16px;box-shadow:0 4px 20px #00000008}.card-title{margin-bottom:var(--spacing-xs);color:var(--color-text);font-size:1rem;font-weight:800}.btn{border-radius:var(--border-radius-full);letter-spacing:.05em;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;gap:8px;width:auto;padding:10px 20px;font-size:.95rem;font-weight:800;transition:all .2s;display:inline-flex}.btn:hover{opacity:.95;transform:translateY(-1px)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:active{background-color:var(--color-primary-dark)}.btn-secondary{color:var(--color-text);background-color:#f5f6f8}.btn-secondary:active{background-color:#e2e4e8}.btn-outline{border:2px solid var(--color-border);color:var(--color-text);background-color:#0000}.btn-outline:active{background-color:#f9f9f9}.btn-ghost{color:var(--color-text-light);background-color:#0000;border:none;padding:4px 8px}.btn-ghost:hover{background-color:var(--color-border);color:var(--color-text)}.btn-danger{color:#b91c1c;background-color:#fee2e2}.btn-danger:active{background-color:#fca5a5}.btn-sm{padding:6px 12px;font-size:.8rem}.btn-md{padding:10px 20px;font-size:.95rem}.btn-lg{padding:14px 28px;font-size:1.1rem}.btn-full{width:100%}.btn-circular{border-radius:50%;flex-shrink:0;width:40px;height:40px;padding:0}.btn-circular.btn-sm{width:32px;height:32px}.btn-icon{justify-content:center;align-items:center;display:flex}.tag{background-color:var(--color-primary-light);border-radius:var(--border-radius-full);color:var(--color-primary);text-align:center;border:none;justify-content:center;align-items:center;margin-bottom:8px;margin-right:8px;padding:4px 12px;font-size:.75rem;font-weight:800;transition:all .15s;display:inline-flex}.tag.selected{background-color:var(--color-primary);color:#fff}.private-badge{background-color:var(--color-private);color:var(--color-private-text);border-radius:var(--border-radius-sm);border:1px solid #0000000d;align-items:center;padding:4px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.input-group{margin-bottom:var(--spacing-lg)}.input-group label{color:var(--color-text);margin-bottom:8px;font-size:.9rem;font-weight:800;display:block}.input-text,.select-box,textarea{border:1px solid var(--color-border-dark);border-radius:var(--border-radius-full);background-color:var(--color-surface);width:100%;color:var(--color-text);appearance:none;padding:10px 16px;font-family:inherit;font-size:.95rem;font-weight:600;transition:border-color .2s,box-shadow .2s}textarea{border-radius:var(--border-radius-md)}.input-text::placeholder,textarea::placeholder{color:var(--color-text-muted);font-weight:600}.input-text:focus,.select-box:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-light);outline:none}.input-title{width:100%;color:var(--color-text);border:none;border-bottom:2px solid var(--color-border);background-color:#0000;border-radius:0;padding:6px 0;font-size:1.25rem;font-weight:800;transition:border-color .2s}.input-title::placeholder{color:var(--color-text-muted)}.input-title:focus{border-bottom-color:var(--color-text);outline:none}.flex-row{align-items:center;display:flex}.justify-between{justify-content:space-between}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-xs{margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.text-sm{font-size:.85rem}.text-xs{font-size:.75rem}.text-light{color:var(--color-text-light)}.text-center{text-align:center}.font-bold{font-weight:700}.header-inline{flex-direction:row;justify-content:center;align-items:center;gap:12px;margin-bottom:4px;display:flex}.header-edit-btn{border:1px solid var(--color-primary);width:32px;height:32px;color:var(--color-primary);background-color:#0000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}@keyframes achievement-pop{0%{opacity:0;transform:scale(.5)}70%{opacity:1;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes achievement-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.achievement-container{z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.achievement-card{text-align:center;background:#fff;border-radius:24px;width:100%;max-width:320px;padding:32px 24px;animation:.5s cubic-bezier(.175,.885,.32,1.275) forwards achievement-pop;box-shadow:0 20px 40px #0003}.achievement-card.fade-out{animation:.5s forwards achievement-fade-out}.achievement-icon{background:linear-gradient(135deg, var(--color-primary-light), var(--color-primary));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 20px;display:flex}.achievement-title{color:var(--color-primary-dark);margin-bottom:8px;font-size:1.4rem;font-weight:900}.achievement-desc{color:var(--color-text-light);font-size:.95rem;line-height:1.5}.page-container{box-sizing:border-box;background-color:var(--color-background);flex-direction:column;width:100%;min-height:100vh;display:flex}.page-header{background-color:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.sticky-header{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#ffffffe6;position:sticky;top:0}.page-title{color:var(--color-text);text-align:center;flex:1;margin:0;font-size:1.1rem;font-weight:800}.page-content{flex:1;padding:24px 16px}.icon-button{width:40px;height:40px;color:var(--color-text-light);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background-color .2s;display:flex}.icon-button:hover{background-color:var(--color-border);color:var(--color-text)}@keyframes popup-bounce{0%{opacity:0;transform:scale(.9)}50%{opacity:1;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.popup-bounce{animation:.4s cubic-bezier(.175,.885,.32,1.275) forwards popup-bounce}
