:root{
  --brand-primary:#403080; --brand-primary-dark:#303080; --brand-accent:#B090D0;
  --surface:#F3F7F8; --card:#fff; --ink:#16151f; --muted:#5b5a6b; --line:#e3e6ee;
  --danger:#b4232f; --warn:#a8690a; --ok:#1c7a4a;
}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){
  --surface:#131220; --card:#1c1b2b; --ink:#eceaf5; --muted:#a09eb5; --line:#2e2c42;
  --brand-accent:#c4a9e0;
}}
*{box-sizing:border-box}
body{margin:0;background:var(--surface);color:var(--ink);
  font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
a{color:var(--brand-primary)}
.topbar{display:flex;align-items:center;gap:14px;padding:12px 20px;background:var(--card);
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.topbar img{width:30px;height:30px}
.brand{font-weight:700;letter-spacing:-.2px}
.brand small{color:var(--muted);font-weight:500}
.tenant-chip{margin-left:auto;font-size:12px;background:var(--surface);border:1px solid var(--line);
  border-radius:999px;padding:4px 12px;color:var(--muted)}
.wrap{max-width:1080px;margin:0 auto;padding:22px 20px 60px}
h1{font-size:22px;margin:0 0 4px} h2{font-size:16px;margin:26px 0 10px}
.sub{color:var(--muted);margin:0 0 18px;font-size:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:12px}
.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.app-tile{display:block;text-decoration:none;color:inherit}
.app-tile:hover{border-color:var(--brand-accent)}
.app-tile .k{font-weight:600;margin-bottom:2px}
.app-tile .d{color:var(--muted);font-size:13px}
.cta{border-left:3px solid var(--brand-primary)}
.cta.u1{border-left-color:var(--danger)} .cta.u2{border-left-color:var(--warn)}
.cta .act{font-weight:600} .cta .meta{color:var(--muted);font-size:12px;margin-top:3px}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.4px}
.tag{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;
  background:var(--surface);border:1px solid var(--line);color:var(--muted)}
.tag.sens{color:var(--danger);border-color:#f0c9cd}
.btn{display:inline-block;background:var(--brand-primary);color:#fff;border:0;border-radius:8px;
  padding:9px 16px;font-size:14px;cursor:pointer;text-decoration:none}
.btn.ghost{background:transparent;color:var(--brand-primary);border:1px solid var(--line)}
input,select{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;
  background:var(--card);color:var(--ink);font-size:14px}
label{display:block;font-size:13px;color:var(--muted);margin:10px 0 4px}
.login{max-width:380px;margin:8vh auto}
.login img{width:56px;height:56px;display:block;margin:0 auto 14px}
.err{background:#fdeaec;border:1px solid #f0c9cd;color:#8d1620;padding:10px 12px;
  border-radius:8px;font-size:14px;margin-bottom:12px}
.note{color:var(--muted);font-size:12px;margin-top:6px}
.spec{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--muted)}
