@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";
:root{--bg-primary:#fff;--bg-secondary:#f8f7fa;--bg-card:#fff;--bg-input:#f8f7fa;--bg-nav:#fff;--border:#ebe9f1;--text-primary:#4b465c;--text-secondary:#6f6b7d;--text-muted:#a5a3ae;--accent:#7367f0;--accent-light:#7367f014;--success:#28c76f;--success-light:#28c76f1a;--warning:#ff9f43;--warning-light:#ff9f431a;--danger:#ea5455;--danger-light:#ea54551a;--info:#00cfe8;--shadow:0 2px 8px #4b465c0f;--shadow-lg:0 4px 20px #4b465c1a;--radius:12px;--nav-height:64px}[data-theme=dark]{--bg-primary:#1a1a2e;--bg-secondary:#16213e;--bg-card:#1e2746;--bg-input:#16213e;--bg-nav:#1e2746;--border:#2a3454;--text-primary:#e8e6ef;--text-secondary:#b4b0c4;--text-muted:#6e6a82;--accent:#8b7ff7;--accent-light:#8b7ff71f;--success:#3dd68c;--success-light:#3dd68c1f;--warning:#ffb36b;--warning-light:#ffb36b1f;--danger:#f06a6b;--danger-light:#f06a6b1f;--info:#2ce0f7;--shadow:0 2px 8px #0003;--shadow-lg:0 4px 20px #0000004d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-size:16px}body{background-color:var(--bg-primary);color:var(--text-primary);min-height:100dvh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;transition:background-color .3s,color .3s;overflow-x:hidden}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:4px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s;overflow:hidden}.card:active{transform:scale(.98)}.btn{cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-width:44px;min-height:44px;padding:12px 20px;font-size:14px;font-weight:600;transition:opacity .15s,transform .1s;display:inline-flex}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-warning{background:var(--warning);color:#fff}.btn-outline{border:1px solid var(--border);color:var(--text-secondary);background:0 0}.btn-sm{min-height:36px;padding:8px 14px;font-size:12px}.btn-icon{border-radius:8px;width:40px;height:40px;padding:0;font-size:16px}.input,.select{background:var(--bg-input);border:1px solid var(--border);width:100%;color:var(--text-primary);-webkit-appearance:none;border-radius:8px;outline:none;min-height:44px;padding:12px 14px;font-size:14px;transition:border-color .2s}.input:focus,.select:focus{border-color:var(--accent)}.badge{white-space:nowrap;border-radius:6px;align-items:center;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-success{background:var(--success-light);color:var(--success)}.badge-warning{background:var(--warning-light);color:var(--warning)}.badge-danger{background:var(--danger-light);color:var(--danger)}.badge-info{background:var(--accent-light);color:var(--accent)}.bottom-nav{height:var(--nav-height);background:var(--bg-nav);border-top:1px solid var(--border);z-index:100;padding-bottom:env(safe-area-inset-bottom,0px);justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #0000000d}.nav-item{color:var(--text-muted);-webkit-tap-highlight-color:transparent;border-radius:8px;flex-direction:column;align-items:center;gap:3px;min-width:64px;padding:8px 16px;font-size:10px;font-weight:600;text-decoration:none;transition:color .2s,background .2s;display:flex}.nav-item.active{color:var(--accent);background:var(--accent-light)}.nav-icon{font-size:22px;line-height:1}.nav-badge{background:var(--danger);color:#fff;text-align:center;border-radius:10px;min-width:16px;padding:1px 5px;font-size:9px;font-weight:700;position:absolute;top:2px;right:8px}.topbar{z-index:50;background:var(--bg-primary);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:space-between;align-items:center;padding:12px 16px;display:flex;position:sticky;top:0}.topbar-title{color:var(--text-primary);font-size:17px;font-weight:700}.topbar-sub{color:var(--text-muted);font-size:12px;font-weight:400}.page-content{padding:12px 12px calc(var(--nav-height) + 16px) 12px;min-height:100dvh}.filter-bar{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;padding:8px 0;display:flex;overflow-x:auto}.filter-bar::-webkit-scrollbar{display:none}.modal-overlay{z-index:200;background:#00000080;justify-content:center;align-items:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-card);border-radius:16px 16px 0 0;width:100%;max-width:500px;max-height:85dvh;animation:.25s slideUp;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border);background:var(--bg-card);z-index:1;justify-content:space-between;align-items:center;padding:16px 20px;display:flex;position:sticky;top:0}.modal-body{padding:20px}.modal-footer{border-top:1px solid var(--border);gap:12px;padding:16px 20px;display:flex}.toast{bottom:calc(var(--nav-height) + 16px);z-index:300;box-shadow:var(--shadow-lg);border-radius:10px;align-items:center;gap:8px;padding:14px 18px;font-size:14px;font-weight:600;animation:.3s slideUp;display:flex;position:fixed;left:16px;right:16px}.toast-success{background:var(--success);color:#fff}.toast-error{background:var(--danger);color:#fff}.theme-toggle{border:1px solid var(--border);background:var(--bg-input);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;transition:transform .3s;display:flex}.theme-toggle:active{transform:rotate(180deg)}.status-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;margin:0 auto;animation:.8s linear infinite spin}.pull-indicator{text-align:center;color:var(--text-muted);padding:12px;font-size:12px;font-weight:600}
