:root { --dorm-primary:#1f5fa8; --dorm-primary-dark:#16477f; --dorm-ink:#172033; --dorm-muted:#64748b; --dorm-line:#e2e8f0; --dorm-surface:#fff; --dorm-page:#f5f7fb; --dorm-radius:14px; --dorm-shadow:0 10px 30px rgba(15,23,42,.07); }
body { font-family:var(--dorm-font-ui); color:var(--dorm-ink); background:var(--dorm-page); }
.dorm-page-title { font-weight:700; letter-spacing:-.02em; color:var(--dorm-ink); }
.dorm-page-subtitle { color:var(--dorm-muted); font-size:.925rem; }
.dorm-card { border:1px solid var(--dorm-line); border-radius:var(--dorm-radius); box-shadow:var(--dorm-shadow); background:var(--dorm-surface); }
.dorm-toolbar { display:flex; gap:.6rem; flex-wrap:wrap; align-items:center; justify-content:space-between; }
.dorm-toolbar__actions { display:flex; gap:.5rem; flex-wrap:wrap; }
.btn { border-radius:9px; font-weight:600; }
.form-control,.form-select,.custom-select { border-color:#cbd5e1; border-radius:9px; min-height:42px; }
.form-control:focus,.form-select:focus,.custom-select:focus { border-color:var(--dorm-primary); box-shadow:0 0 0 .2rem rgba(31,95,168,.15); }
.badge { border-radius:999px; padding:.42em .68em; font-weight:600; }
.table thead th { color:#475569; background:#f8fafc; border-bottom-width:1px; white-space:nowrap; }
.table td { vertical-align:middle; }
.dorm-toast-stack { position:fixed; z-index:2000; top:max(1rem, env(safe-area-inset-top)); right:1rem; left:1rem; display:flex; flex-direction:column; align-items:flex-end; gap:.5rem; pointer-events:none; }
.dorm-toast { width:min(100%, 420px); padding:.85rem 1rem; border-radius:12px; color:#fff; font-weight:500; box-shadow:0 10px 28px rgba(15,23,42,.22); opacity:0; transform:translateY(-8px); transition:opacity .18s ease,transform .18s ease; }
.dorm-toast.is-visible { opacity:1; transform:translateY(0); }
.dorm-toast--success { background:#15803d; }.dorm-toast--error { background:#b91c1c; }.dorm-toast--warning { background:#b45309; }.dorm-toast--info { background:#1d4ed8; }
@media(max-width:767.98px){.dorm-toolbar{align-items:stretch}.dorm-toolbar__actions{width:100%}.dorm-toolbar__actions .btn{flex:1 1 auto}}
