:root{--bg-primary: #ffffff;--bg-secondary: #f7f7f8;--bg-hover: #ededef;--text-primary: #1a1a1a;--text-secondary: #6b6b6b;--text-tertiary: #b0b0b0;--border: #e0e0e0;--accent: #2481cc}@media(prefers-color-scheme:dark){:root{--bg-primary: #1c1c1e;--bg-secondary: #2c2c2e;--bg-hover: #3a3a3c;--text-primary: #f5f5f5;--text-secondary: #a0a0a0;--text-tertiary: #5a5a5a;--border: #3a3a3c;--accent: #3ba0e6}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);font-size:14px;line-height:1.4;-webkit-font-smoothing:antialiased;overscroll-behavior:none}.event-hearing{border-left:4px solid #E53E3E}.event-deadline{border-left:4px solid #DD6B20}.event-meeting{border-left:4px solid #38A169}.event-task{border-left:4px solid #3182CE}.event-tax{border-left:4px solid #805AD5}.tab-bar{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--bg-secondary);border-top:1px solid var(--border);padding:4px 0;padding-bottom:env(safe-area-inset-bottom,4px);z-index:100}.tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;background:none;border:none;color:var(--text-secondary);font-size:10px;cursor:pointer;transition:color .2s}.tab-btn.active{color:var(--accent)}.tab-icon{font-size:20px;line-height:1}.tab-label{font-weight:500}.tab-content{padding:12px 12px 70px;min-height:100vh}.card{background:var(--bg-secondary);border-radius:10px;padding:12px;margin-bottom:8px}.card-title{font-weight:600;font-size:14px;margin-bottom:4px}.card-subtitle{font-size:12px;color:var(--text-secondary)}.section-title{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:16px 0 8px}.counters{display:flex;gap:8px;margin-bottom:12px}.counter{flex:1;background:var(--bg-secondary);border-radius:10px;padding:12px;text-align:center}.counter-value{font-size:24px;font-weight:700;color:var(--accent)}.counter-label{font-size:11px;color:var(--text-secondary);margin-top:2px}.event-card{background:var(--bg-secondary);border-radius:10px;padding:10px 12px;margin-bottom:6px}.event-card .event-time{font-size:12px;font-weight:600;color:var(--accent)}.event-card .event-title{font-size:14px;font-weight:500;margin-top:2px}.event-card .event-case{font-size:12px;color:var(--text-secondary);margin-top:2px}.overdue-card{background:var(--bg-secondary);border-left:4px solid #E53E3E;border-radius:10px;padding:10px 12px;margin-bottom:6px}.overdue-badge{display:inline-block;background:#e53e3e;color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calendar-header button{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-primary);padding:4px 8px}.calendar-header .month-label{font-weight:600;font-size:16px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-grid .weekday{text-align:center;font-size:11px;font-weight:600;color:var(--text-secondary);padding:4px}.calendar-grid .day{text-align:center;padding:8px 4px;border-radius:8px;cursor:pointer;font-size:13px;position:relative}.calendar-grid .day:hover{background:var(--bg-hover)}.calendar-grid .day.today{background:var(--accent);color:#fff;font-weight:700}.calendar-grid .day.selected{outline:2px solid var(--accent)}.calendar-grid .day.other-month{color:var(--text-tertiary)}.day-dots{display:flex;justify-content:center;gap:2px;margin-top:2px;min-height:6px}.day-dot{width:5px;height:5px;border-radius:50%}.dot-hearing{background:#e53e3e}.dot-deadline{background:#dd6b20}.dot-meeting{background:#38a169}.dot-task{background:#3182ce}.dot-tax{background:#805ad5}.search-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-secondary);color:var(--text-primary);font-size:14px;margin-bottom:12px;box-sizing:border-box}.search-input::placeholder{color:var(--text-tertiary)}.case-card{background:var(--bg-secondary);border-radius:10px;padding:12px;margin-bottom:8px;cursor:pointer}.case-card:active{opacity:.7}.case-name{font-weight:600;font-size:14px}.case-meta{font-size:12px;color:var(--text-secondary);margin-top:4px}.case-next-event{font-size:12px;color:var(--accent);margin-top:4px}.detail-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.back-btn{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-primary);padding:4px}.detail-field{margin-bottom:8px}.detail-label{font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.detail-value{font-size:14px;margin-top:2px}.log-entry{background:var(--bg-secondary);border-radius:10px;padding:10px 12px;margin-bottom:6px}.log-entry .log-icon{font-size:16px}.log-entry .log-content{font-size:13px;margin-top:2px}.log-entry .log-meta{font-size:11px;color:var(--text-secondary);margin-top:4px}.filter-select{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-secondary);color:var(--text-primary);font-size:14px;margin-bottom:12px}.loading,.empty-state{text-align:center;padding:40px 20px;color:var(--text-secondary);font-size:14px}.status-badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px}.status-active{background:#c6f6d5;color:#22543d}.status-suspended{background:#fefcbf;color:#744210}.status-closed{background:#e2e8f0;color:#4a5568}.status-won{background:#c6f6d5;color:#22543d}.status-lost{background:#fed7d7;color:#9b2c2c}.status-settled{background:#bee3f8;color:#2a4365}
