.sw-native-dashboard { display: none !important; }
.sw-dashboard { --sw-primary:#635bff; --sw-primary-2:#8a63ff; --sw-ink:#17172b; --sw-muted:#70758a; --sw-line:rgba(71,65,140,.13); --sw-card:rgba(255,255,255,.92); min-height:100%; padding:18px; color:var(--sw-ink); background:radial-gradient(circle at 90% 0%,rgba(108,92,231,.18),transparent 29%),linear-gradient(145deg,#f6f3ff 0%,#f7f9ff 48%,#f0f8ff 100%); overflow:auto; box-sizing:border-box; }
.sw-dashboard * { box-sizing:border-box; }
.sw-shell { width:min(1180px,100%); margin:0 auto; display:grid; gap:16px; padding-bottom:28px; }
.sw-hero { position:relative; overflow:hidden; border-radius:22px; padding:22px 24px; color:#fff; background:linear-gradient(130deg,#4b43d6 0%,#7658e8 52%,#318ad8 100%); box-shadow:0 18px 45px rgba(67,58,178,.22); }
.sw-hero:after { content:""; position:absolute; width:260px; height:260px; right:-70px; top:-130px; border:46px solid rgba(255,255,255,.1); border-radius:50%; }
.sw-hero-top,.sw-actions,.sw-row,.sw-card-head,.sw-client-actions,.sw-tabs { display:flex; align-items:center; }
.sw-hero-top,.sw-card-head { justify-content:space-between; gap:16px; }
.sw-kicker { margin:0 0 5px; opacity:.78; font-size:13px; letter-spacing:.04em; }
.sw-hero h2 { margin:0; font-size:25px; font-weight:750; }
.sw-status { display:inline-flex; align-items:center; gap:7px; padding:7px 11px; border-radius:999px; background:rgba(255,255,255,.15); backdrop-filter:blur(12px); font-size:13px; }
.sw-status:before { content:""; width:8px; height:8px; border-radius:50%; background:#71f6b1; box-shadow:0 0 0 4px rgba(113,246,177,.15); }
.sw-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; margin-top:18px; }
.sw-stat { padding:13px 14px; border:1px solid rgba(255,255,255,.13); border-radius:14px; background:rgba(18,17,70,.16); }
.sw-stat span { display:block; font-size:12px; opacity:.7; }
.sw-stat strong { display:block; margin-top:5px; font-size:17px; }
.sw-progress { height:8px; margin-top:15px; border-radius:99px; overflow:hidden; background:rgba(255,255,255,.16); }
.sw-progress i { display:block; height:100%; width:0; border-radius:inherit; background:linear-gradient(90deg,#6cf1b1,#dcff89); transition:width .5s ease; }
.sw-grid { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr); gap:16px; }
.sw-card { border:1px solid var(--sw-line); border-radius:19px; background:var(--sw-card); box-shadow:0 10px 35px rgba(41,38,92,.07); padding:19px; backdrop-filter:blur(16px); }
.sw-card h3 { margin:0; font-size:17px; }
.sw-card-sub { margin:4px 0 0; color:var(--sw-muted); font-size:12px; }
.sw-icon { display:grid; place-items:center; width:38px; height:38px; flex:0 0 auto; border-radius:12px; color:#fff; background:linear-gradient(135deg,var(--sw-primary),var(--sw-primary-2)); font-size:18px; font-weight:750; }
.sw-title-wrap { display:flex; align-items:center; gap:11px; }
.sw-announcements { overflow:hidden; }
.sw-notice-list { height:176px; margin-top:14px; border-top:1px solid var(--sw-line); overflow-y:auto; scrollbar-width:thin; scrollbar-color:rgba(99,91,255,.38) transparent; }
.sw-notice { appearance:none; width:100%; display:grid; grid-template-columns:28px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:44px; padding:9px 4px; border:0; border-bottom:1px solid var(--sw-line); color:var(--sw-ink); background:transparent; font:inherit; font-size:13px; line-height:1.45; text-align:left; cursor:pointer; }
.sw-notice:hover { background:rgba(99,91,255,.055); }
.sw-notice b { display:grid; place-items:center; width:24px; height:24px; border:1px solid rgba(99,91,255,.25); border-radius:7px; color:var(--sw-primary); background:rgba(99,91,255,.08); font-size:11px; font-variant-numeric:tabular-nums; }
.sw-notice span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sw-notice time { color:var(--sw-muted); font-size:12px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.sw-notice-empty { display:grid; place-items:center; height:100%; color:var(--sw-muted); font-size:13px; }
.sw-modal[hidden] { display:none; }
.sw-modal { position:fixed; inset:0; z-index:100000; display:grid; place-items:center; padding:20px; }
.sw-modal-backdrop { position:absolute; inset:0; background:rgba(10,9,24,.66); backdrop-filter:blur(5px); }
.sw-modal-card { position:relative; z-index:1; width:min(620px,100%); max-height:min(76vh,680px); overflow:auto; padding:26px; border:1px solid var(--sw-line); border-radius:20px; color:var(--sw-ink); background:var(--sw-card); box-shadow:0 28px 80px rgba(7,5,28,.32); }
.sw-modal-card h3 { margin:8px 42px 5px 0; font-size:21px; line-height:1.4; }
.sw-modal-card time,.sw-modal-id { color:var(--sw-muted); font-size:12px; }
.sw-modal-id { color:var(--sw-primary); font-weight:700; }
.sw-modal-content { margin-top:20px; padding-top:18px; border-top:1px solid var(--sw-line); font-size:14px; line-height:1.8; overflow-wrap:anywhere; }
.sw-modal-content p:first-child { margin-top:0; }
.sw-modal-content p:last-child { margin-bottom:0; }
.sw-modal-content a { color:var(--sw-primary); }
.sw-modal-close { position:absolute; top:16px; right:16px; width:34px; height:34px; border:0; border-radius:10px; color:var(--sw-muted); background:rgba(99,91,255,.08); font-size:23px; line-height:1; cursor:pointer; }
.sw-modal-open { overflow:hidden; }
.sw-link-box { margin-top:16px; padding:13px; border-radius:14px; background:#f2f1fa; border:1px solid rgba(90,82,157,.08); }
.sw-link-label { color:var(--sw-muted); font-size:12px; }
.sw-link-value { margin-top:6px; font:13px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sw-actions { flex-wrap:wrap; gap:9px; margin-top:12px; }
.sw-btn { appearance:none; border:0; border-radius:11px; padding:10px 14px; cursor:pointer; font-size:13px; font-weight:650; color:#fff; background:linear-gradient(135deg,var(--sw-primary),var(--sw-primary-2)); box-shadow:0 7px 18px rgba(99,91,255,.18); text-decoration:none; }
.sw-btn:hover { filter:brightness(1.04); transform:translateY(-1px); }
.sw-btn.secondary { color:#4d4a68; background:#eeedf6; box-shadow:none; }
.sw-qr { display:grid; place-items:center; min-height:203px; margin-top:14px; border-radius:16px; background:linear-gradient(145deg,#f3f0ff,#edf7ff); }
.sw-qr img { width:168px; height:168px; padding:9px; border-radius:13px; background:#fff; box-shadow:0 10px 28px rgba(42,37,101,.12); }
.sw-import-grid { display:grid; grid-template-columns:repeat(5,minmax(110px,1fr)); gap:10px; margin-top:16px; }
.sw-import { border:1px solid var(--sw-line); border-radius:14px; padding:13px 9px; background:rgba(249,249,255,.95); cursor:pointer; color:var(--sw-ink); text-align:center; }
.sw-import:hover { border-color:rgba(99,91,255,.45); background:#f4f1ff; }
.sw-import b { display:grid; place-items:center; width:38px; height:38px; margin:0 auto 8px; border-radius:12px; color:#fff; background:linear-gradient(145deg,#5852d7,#3989da); font-size:15px; }
.sw-import span { display:block; font-size:12px; font-weight:650; }
.sw-tabs { gap:5px; flex-wrap:wrap; margin-top:15px; padding:4px; border-radius:12px; background:#f0eff7; width:max-content; max-width:100%; }
.sw-tab { border:0; border-radius:9px; padding:8px 12px; cursor:pointer; background:transparent; color:var(--sw-muted); font-size:12px; }
.sw-tab.active { background:#fff; color:var(--sw-primary); box-shadow:0 4px 12px rgba(38,33,83,.08); font-weight:700; }
.sw-client-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; margin-top:14px; }
.sw-client { display:flex; gap:12px; min-height:118px; padding:14px; border:1px solid var(--sw-line); border-radius:15px; background:#fbfbff; }
.sw-client-logo { display:grid; place-items:center; width:46px; height:46px; flex:0 0 auto; border-radius:14px; color:#fff; background:linear-gradient(145deg,#645cff,#42a0da); font-size:16px; font-weight:800; }
.sw-client h4 { margin:1px 0 4px; font-size:14px; }
.sw-client p { margin:0; min-height:34px; color:var(--sw-muted); font-size:12px; line-height:1.45; }
.sw-client-actions { gap:8px; margin-top:9px; }
.sw-mini { color:var(--sw-primary); font-size:12px; font-weight:650; text-decoration:none; }
.sw-quick { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:14px; }
.sw-quick a { padding:13px; border:1px solid var(--sw-line); border-radius:13px; color:var(--sw-ink); background:#fafaff; text-decoration:none; font-size:13px; font-weight:650; text-align:center; }
.sw-loading,.sw-error { padding:45px 20px; text-align:center; color:var(--sw-muted); }
.sw-toast { position:fixed; right:24px; bottom:24px; z-index:99999; padding:11px 15px; border-radius:11px; color:#fff; background:#25233b; box-shadow:0 12px 30px rgba(0,0,0,.2); font-size:13px; animation:sw-in .2s ease; }
@keyframes sw-in { from { transform:translateY(8px); opacity:0; } }
.dark .sw-dashboard { --sw-ink:#f4f3ff; --sw-muted:#aaa8bb; --sw-line:rgba(202,197,255,.12); --sw-card:rgba(27,26,38,.93); background:radial-gradient(circle at 90% 0%,rgba(88,77,196,.2),transparent 30%),#111116; }
.dark .sw-link-box,.dark .sw-tabs { background:#24232f; }.dark .sw-btn.secondary { background:#2b2938; color:#ddd9f5; }.dark .sw-import,.dark .sw-client,.dark .sw-quick a { background:#211f2c; }
@media (max-width:900px){ .sw-grid{grid-template-columns:1fr}.sw-import-grid{grid-template-columns:repeat(3,1fr)} }
@media (max-width:620px){ .sw-dashboard{padding:10px}.sw-hero{padding:18px}.sw-status{position:absolute;top:18px;right:16px;font-size:11px;padding:6px 9px}.sw-stats{grid-template-columns:1fr 1fr}.sw-stat:last-child{grid-column:1/-1}.sw-import-grid{grid-template-columns:repeat(2,1fr)}.sw-client-grid{grid-template-columns:1fr}.sw-quick{grid-template-columns:1fr}.sw-hero h2{font-size:21px}.sw-card{padding:15px}.sw-notice{grid-template-columns:26px minmax(0,1fr);gap:8px;padding:8px 2px}.sw-notice time{grid-column:2;justify-self:start}.sw-modal{padding:12px}.sw-modal-card{padding:21px}.sw-modal-card h3{font-size:18px} }
