:root{--bg: #f5f6fa;--bg-card: #ffffff;--bg-input: #f0f2f7;--text: #1a1d26;--text-dim: #6b7280;--text-hint: #9ca3af;--border: #e5e7eb;--accent: #4f6ef7;--accent-bg: #eef1fe;--danger: #ef4444;--success: #10b981;--font: "Noto Sans SC", -apple-system, "PingFang SC", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:var(--font);background:var(--bg);color:var(--text);font-size:15px;-webkit-font-smoothing:antialiased}input,select,textarea,button{font-family:inherit;font-size:inherit}.login-screen{display:flex;align-items:center;justify-content:center;height:100vh;padding:20px;background:linear-gradient(135deg,#1e293b,#334155)}.login-card{background:#fff;border-radius:16px;padding:40px 30px;text-align:center;width:100%;max-width:340px;box-shadow:0 10px 40px #0003}.login-icon{font-size:48px;margin-bottom:12px}.login-card h2{font-size:22px;margin-bottom:8px}.login-card p{font-size:14px;color:var(--text-dim);margin-bottom:24px}.login-card input{width:100%;padding:12px 16px;border:2px solid var(--border);border-radius:10px;font-size:16px;text-align:center;outline:none;margin-bottom:16px}.login-card input:focus{border-color:var(--accent)}.login-card button{width:100%;padding:12px;background:var(--accent);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer}.login-select-wrap{margin-bottom:14px}.login-select-wrap select{width:100%;padding:12px 16px;border:2px solid var(--border);border-radius:10px;font-size:16px;text-align:center;outline:none;background:#fff;color:var(--text)}.login-select-wrap select:focus{border-color:var(--accent)}.m-page{min-height:100vh;display:flex;flex-direction:column}.m-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:#1e293b;color:#fff;position:sticky;top:0;z-index:10}.m-header h1{font-size:18px;font-weight:600}.m-header-right{display:flex;align-items:center;gap:8px}.m-owner-name{font-size:13px;color:#94a3b8;background:#ffffff1a;padding:3px 10px;border-radius:6px}.m-refresh{background:none;border:none;color:#94a3b8;font-size:22px;cursor:pointer;padding:4px 8px}.m-logout{background:none;border:1px solid rgba(255,255,255,.2);color:#94a3b8;font-size:13px;padding:4px 10px;border-radius:6px;cursor:pointer}.m-back{background:none;border:none;color:#94a3b8;font-size:15px;cursor:pointer;padding:4px 0}.m-edit-btn{background:#ffffff26;border:none;color:#fff;padding:6px 14px;border-radius:8px;font-size:14px;cursor:pointer}.m-search{padding:12px 16px 8px;position:relative}.m-search input{width:100%;padding:10px 36px 10px 14px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);font-size:15px;outline:none}.m-search input:focus{border-color:var(--accent)}.m-search-clear{position:absolute;right:24px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-hint);font-size:16px;cursor:pointer}.m-filter-tabs{display:flex;gap:6px;padding:8px 16px 12px;overflow-x:auto;-webkit-overflow-scrolling:touch}.m-filter-tab{flex-shrink:0;padding:5px 14px;border:1.5px solid var(--border);border-radius:20px;background:var(--bg-card);font-size:13px;color:var(--text-dim);cursor:pointer}.m-filter-tab.active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent);font-weight:500}.m-loading,.m-empty{text-align:center;padding:60px 20px;color:var(--text-hint);font-size:15px}.m-empty-sm{text-align:center;padding:24px;color:var(--text-hint);font-size:14px}.m-case-list{padding:0 16px 20px;display:flex;flex-direction:column;gap:10px}.m-case-card{background:var(--bg-card);border-radius:12px;padding:14px 16px;box-shadow:0 1px 4px #0000000f;cursor:pointer;border:1px solid var(--border);transition:box-shadow .15s}.m-case-card:active{box-shadow:0 2px 8px #0000001f}.m-card-top{display:flex;gap:6px;align-items:center;margin-bottom:8px;flex-wrap:wrap}.m-type-badge{padding:2px 8px;border-radius:5px;color:#fff;font-size:11px;font-weight:500}.m-position{font-size:11px;color:var(--text-dim);background:var(--bg-input);padding:2px 6px;border-radius:4px}.m-stage-badge{padding:2px 8px;border-radius:5px;color:#fff;font-size:11px;font-weight:500;margin-left:auto}.m-card-title{font-size:16px;font-weight:600;margin-bottom:4px;line-height:1.4}.m-card-cause{font-size:13px;color:var(--text-dim);margin-bottom:6px}.m-card-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:12.5px;color:var(--text-dim)}.m-detail-header{padding:16px}.m-detail-header h2{font-size:20px;font-weight:700;margin-bottom:8px;line-height:1.4}.m-detail-badges{display:flex;gap:6px;flex-wrap:wrap}.m-tabs{display:flex;border-bottom:2px solid var(--border);padding:0 16px;overflow-x:auto;-webkit-overflow-scrolling:touch;position:sticky;top:48px;background:var(--bg);z-index:5}.m-tab{flex-shrink:0;padding:10px 14px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;font-size:14px;color:var(--text-dim);cursor:pointer;white-space:nowrap}.m-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.m-tab-content{padding:16px;flex:1}.m-info-list{display:flex;flex-direction:column;gap:0}.m-info-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #f3f4f6}.m-info-label{font-size:14px;color:var(--text-dim);flex-shrink:0}.m-info-value{font-size:14px;font-weight:500;text-align:right;word-break:break-all}.m-notes{padding-top:12px}.m-notes p{font-size:14px;color:var(--text-dim);line-height:1.7;white-space:pre-wrap;margin-top:6px}.m-edit-form{display:flex;flex-direction:column;gap:14px}.m-form-group{display:flex;flex-direction:column;gap:4px}.m-form-group label{font-size:13px;color:var(--text-dim);font-weight:500}.m-form-group input,.m-form-group select,.m-form-group textarea{padding:10px 12px;border:1.5px solid var(--border);border-radius:8px;background:var(--bg-card);font-size:15px;outline:none;color:var(--text)}.m-form-group input:focus,.m-form-group select:focus,.m-form-group textarea:focus{border-color:var(--accent)}.m-form-group textarea{resize:vertical}.m-edit-actions{display:flex;gap:10px;padding-top:10px}.m-stage-list{display:flex;flex-direction:column;gap:8px}.m-stage-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1.5px solid var(--border);border-radius:10px;background:var(--bg-card);cursor:pointer;font-size:15px;transition:all .15s}.m-stage-item.current{font-weight:600}.m-stage-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.m-other-stage{padding:16px;font-size:16px;text-align:center;color:var(--text-dim)}.m-other-stage strong{color:var(--accent)}.m-progress{display:flex;flex-direction:column;gap:12px}.m-progress-add{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.m-progress-add textarea{width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:8px;font-size:14px;outline:none;resize:vertical;background:var(--bg-card)}.m-progress-add textarea:focus{border-color:var(--accent)}.m-progress-item{padding:12px 0;border-bottom:1px solid #f3f4f6}.m-progress-time{font-size:12px;color:var(--text-hint);font-family:monospace;margin-bottom:4px}.m-progress-item p{font-size:14px;line-height:1.7;color:var(--text)}.m-contacts{display:flex;flex-direction:column;gap:10px}.m-contact-add{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap}.m-contact-add select{padding:8px 10px;border:1.5px solid var(--border);border-radius:8px;font-size:14px;background:var(--bg-card);outline:none}.m-contact-add input{flex:1;min-width:140px;padding:8px 12px;border:1.5px solid var(--border);border-radius:8px;font-size:14px;outline:none;background:var(--bg-card)}.m-contact-item{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg-card);border-radius:10px;border:1px solid var(--border)}.m-contact-type{background:var(--accent-bg);color:var(--accent);padding:3px 10px;border-radius:6px;font-size:13px;font-weight:500;flex-shrink:0}.m-contact-info{font-size:14px;flex:1}.m-btn{padding:10px 20px;border:none;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer}.m-btn-sm{padding:8px 16px;font-size:14px;align-self:flex-end}.m-btn-primary{background:var(--accent);color:#fff}.m-btn-ghost{background:transparent;color:var(--text-dim);border:1.5px solid var(--border)}
