*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:#f5f7fa;color:#2c3e50;-webkit-font-smoothing:antialiased}:root{--color-bg: #f5f7fa;--color-card: #ffffff;--color-primary: #4A90D9;--color-primary-hover: #357ABD;--color-success: #27AE60;--color-success-hover: #219A52;--color-danger: #E74C3C;--color-danger-hover: #C0392B;--color-text: #2C3E50;--color-text-secondary: #7F8C8D;--color-border: #E8ECF0;--color-border-light: #F0F2F5;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 20px;--shadow-card: 0 2px 8px rgba(0, 0, 0, .08);--shadow-modal: 0 20px 60px rgba(0, 0, 0, .2);--transition: .2s ease}.app-container{min-height:100vh;background-color:var(--color-bg)}.app-inner{max-width:640px;margin:0 auto;padding:24px 16px;display:flex;flex-direction:column;gap:20px}.app-header{display:flex;align-items:center;justify-content:space-between}.app-title{font-size:1.25rem;font-weight:700;color:var(--color-text)}.stats-container{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat-card{background:var(--color-card);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;align-items:center;gap:4px}.stat-icon{font-size:1.5rem}.stat-number{font-size:1.5rem;font-weight:700;color:var(--color-text)}.stat-label{font-size:.75rem;color:var(--color-text-secondary)}.checkin-form{background:var(--color-card);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:12px}.category-tags{display:flex;flex-wrap:wrap;gap:8px}.category-tag{padding:6px 12px;border-radius:var(--radius-pill);font-size:.875rem;border:2px solid transparent;background:#f0f2f5;color:var(--color-text);cursor:pointer;transition:all var(--transition)}.category-tag:hover{background:#e4e7eb}.category-tag.active{border-color:var(--color-primary);background:#4a90d91a;color:var(--color-primary);font-weight:500}.checkin-input-area{width:100%}.checkin-input{width:100%;padding:10px 16px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#f8f9fb;font-size:.875rem;color:var(--color-text);outline:none;transition:all var(--transition)}.checkin-input::placeholder{color:var(--color-text-secondary)}.checkin-input:focus{border-color:var(--color-primary);background:var(--color-card)}.checkin-list{display:flex;flex-direction:column;gap:16px}.list-header{display:flex;align-items:center;gap:8px}.filter-select{padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-card);font-size:.875rem;color:var(--color-text);outline:none;cursor:pointer;transition:border-color var(--transition)}.filter-select:focus{border-color:var(--color-primary)}.date-group{display:flex;flex-direction:column;gap:4px}.date-group-header{font-size:.875rem;font-weight:500;color:var(--color-text-secondary);padding:0 4px}.date-group-items{background:var(--color-card);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.date-group-items .checkin-card:not(:last-child){border-bottom:1px solid var(--color-border-light)}.checkin-card{position:relative;display:flex;align-items:center;gap:12px;padding:12px;transition:background var(--transition)}.checkin-card:hover{background:#fafbfc}.card-icon{font-size:1.5rem;flex-shrink:0}.card-content{flex:1;font-size:.875rem;color:var(--color-text);line-height:1.5;min-width:0;word-break:break-word}.card-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.card-time{font-size:.75rem;color:var(--color-text-secondary)}.category-badge{padding:2px 8px;border-radius:var(--radius-pill);font-size:.75rem;color:#fff;font-weight:500}.card-delete{position:absolute;top:-4px;right:-4px;width:20px;height:20px;border-radius:50%;background:var(--color-danger);color:#fff;font-size:.75rem;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition),background var(--transition)}.checkin-card:hover .card-delete{opacity:1}.card-delete:hover{background:var(--color-danger-hover)}.empty-state{background:var(--color-card);border-radius:var(--radius-md);padding:32px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.empty-state-icon{font-size:2.5rem}.empty-state-text{font-size:.875rem;color:var(--color-text-secondary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#0006}.modal-content{background:var(--color-card);border-radius:var(--radius-lg);width:90vw;max-width:28rem;max-height:80vh;overflow-y:auto;padding:20px;box-shadow:var(--shadow-modal);display:flex;flex-direction:column;gap:16px}.modal-header{display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:1.125rem;font-weight:700;color:var(--color-text)}.modal-close{width:28px;height:28px;border-radius:50%;background:#f0f2f5;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);font-size:1rem;transition:background var(--transition)}.modal-close:hover{background:#e4e7eb}.modal-body{display:flex;flex-direction:column;gap:16px}.category-list{display:flex;flex-direction:column;gap:8px}.category-item{display:flex;align-items:center;gap:12px;padding:10px;border-radius:var(--radius-sm);transition:background var(--transition)}.category-item:hover{background:#fafbfc}.category-item-icon{font-size:1.25rem}.category-item-name{flex:1;font-size:.875rem;color:var(--color-text);font-weight:500}.category-item-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.category-item-actions{display:flex;gap:4px;opacity:0;transition:opacity var(--transition)}.category-item:hover .category-item-actions{opacity:1}.btn-edit{padding:4px 8px;border-radius:4px;font-size:.75rem;color:var(--color-primary);background:none;border:none;cursor:pointer;transition:background var(--transition)}.btn-edit:hover{background:#4a90d91a}.btn-danger-text{padding:4px 8px;border-radius:4px;font-size:.75rem;color:var(--color-danger);background:none;border:none;cursor:pointer;transition:background var(--transition)}.btn-danger-text:hover{background:#e74c3c14}.category-edit-form{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:var(--radius-sm);background:#f8f9fb;border:1px solid var(--color-border)}.category-edit-input{padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--color-border);font-size:.875rem;outline:none;transition:border-color var(--transition)}.category-edit-input:focus{border-color:var(--color-primary)}.category-edit-actions{display:flex;gap:8px}.emoji-picker{display:flex;flex-wrap:wrap;gap:4px}.emoji-btn{width:32px;height:32px;border-radius:var(--radius-sm);border:none;background:none;cursor:pointer;font-size:1.125rem;display:flex;align-items:center;justify-content:center;transition:background var(--transition)}.emoji-btn:hover{background:#e4e7eb}.emoji-btn.active{background:#4a90d933;box-shadow:0 0 0 2px var(--color-primary)}.color-picker{display:flex;flex-wrap:wrap;gap:6px}.color-btn{width:24px;height:24px;border-radius:50%;border:none;cursor:pointer;transition:transform var(--transition)}.color-btn:hover{transform:scale(1.1)}.color-btn.active{transform:scale(1.25);box-shadow:0 0 0 2px #fff,0 0 0 4px #95a5a6}.category-add-section{border-top:1px solid var(--color-border);padding-top:16px;display:flex;flex-direction:column;gap:8px}.category-add-title{font-size:.875rem;font-weight:500;color:var(--color-text)}.btn-primary{width:100%;padding:10px;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-size:.875rem;font-weight:500;border:none;cursor:pointer;transition:all var(--transition)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary.btn-small{width:auto;flex:1;padding:6px 12px}.btn-success{width:100%;padding:8px;border-radius:var(--radius-sm);background:var(--color-success);color:#fff;font-size:.875rem;font-weight:500;border:none;cursor:pointer;transition:all var(--transition)}.btn-success:hover{background:var(--color-success-hover)}.btn-success:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{padding:6px 12px;border-radius:var(--radius-sm);font-size:.875rem;color:var(--color-primary);font-weight:500;background:none;border:none;cursor:pointer;transition:background var(--transition)}.btn-ghost:hover{background:#4a90d91a}.btn-ghost.btn-small{flex:1;padding:6px 12px;background:#e4e7eb;color:var(--color-text)}.btn-ghost.btn-small:hover{background:#d5d9de}.btn-danger{padding:8px 16px;border-radius:var(--radius-sm);background:var(--color-danger);color:#fff;font-size:.875rem;font-weight:500;border:none;cursor:pointer;transition:all var(--transition)}.btn-danger:hover{background:var(--color-danger-hover)}.btn-small{font-size:.8125rem}@media(max-width:480px){.app-inner{padding:16px 12px}.stats-container{grid-template-columns:1fr;gap:8px}.stat-card{flex-direction:row;justify-content:space-between;padding:12px 16px}.modal-content{width:95vw;max-height:85vh}}
