:root{--bg:#f4f8fd;--surface:#fff;--surface2:#edf3fb;--text:#10213a;--muted:#607089;--primary:#0757c9;--accent:#00a68a;--danger:#c8192e;--border:#d7e2ef;--shadow:0 18px 45px rgba(20,54,99,.12)}
html[data-theme=dark]{--bg:#07111f;--surface:#0d1b2d;--surface2:#14263c;--text:#f4f7ff;--muted:#a9b7ca;--primary:#4b91ff;--border:#223953;--shadow:0 18px 45px rgba(0,0,0,.35)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif}a{color:var(--primary);text-decoration:none}button,input,select,textarea{font:inherit}
.guest-banner{position:sticky;top:0;z-index:1000;display:flex;gap:.55rem;justify-content:center;flex-wrap:wrap;padding:.65rem;background:var(--danger);color:#fff}.guest-banner a{color:#fff;text-decoration:underline}
.site-header{position:sticky;top:0;z-index:900;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem clamp(.7rem,4vw,3rem);background:color-mix(in srgb,var(--surface) 92%,transparent);border-bottom:1px solid var(--border);backdrop-filter:blur(15px)}
.guest-banner+.site-header{top:42px}.brand{display:flex;align-items:center;gap:.7rem;color:var(--text)}.brand-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,#0757c9,#00a68a);color:white;font-weight:900}.brand small{display:block;color:var(--muted);font-size:.72rem}
.header-actions{display:flex;align-items:center;gap:.5rem}.icon-btn,.language-btn{min-height:42px;border:1px solid var(--border);border-radius:13px;background:var(--surface);color:var(--text);cursor:pointer}.icon-btn{width:42px}.language-btn{padding:.25rem .55rem;font-weight:800}.language-btn small{display:block;font-size:.52rem;color:#f0a000}.profile-chip{display:flex;align-items:center;gap:.4rem;padding:.3rem .6rem .3rem .3rem;border:1px solid var(--border);border-radius:999px;color:var(--text);background:var(--surface)}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--primary);color:white;font-weight:800}
.app-shell{width:min(1160px,calc(100% - 1rem));margin:1rem auto 4rem}.hero{display:grid;grid-template-columns:1.25fr .75fr;gap:2rem;align-items:center;min-height:430px;padding:clamp(1.3rem,5vw,4rem);border-radius:28px;background:radial-gradient(circle at 80% 20%,rgba(75,145,255,.35),transparent 30%),linear-gradient(135deg,#041d3a,#073f88 60%,#087b93);color:#fff;box-shadow:var(--shadow)}.hero h1{font-size:clamp(2.4rem,6vw,5rem);line-height:.95;margin:.6rem 0 1rem}.hero p{color:#d9eaff}.hero-card{padding:1.2rem;border:1px solid #ffffff33;border-radius:20px;background:#ffffff18}.badge{display:inline-block;padding:.35rem .6rem;border-radius:999px;background:#ffffff1f;font-size:.75rem;font-weight:800}
.actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.2rem}.btn{display:inline-flex;justify-content:center;align-items:center;min-height:45px;padding:.7rem 1rem;border:0;border-radius:13px;background:var(--primary);color:white;font-weight:800;cursor:pointer}.btn.secondary{background:var(--surface);color:var(--primary);border:1px solid var(--border)}.btn.ghost{background:transparent;border:1px solid currentColor}.btn.danger{background:var(--danger)}.small{min-height:38px;padding:.45rem .7rem}
.card{padding:1.2rem;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}.auth-wrap{display:grid;place-items:center;min-height:70vh}.auth-card{width:min(560px,100%)}.form-grid{display:grid;gap:1rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}label{display:grid;gap:.35rem;font-weight:700}input,select,textarea{width:100%;min-height:46px;padding:.75rem;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text)}textarea{min-height:110px}
.dashboard-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.muted{color:var(--muted)}.nav-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.nav-card{min-height:130px;padding:1rem;border:1px solid var(--border);border-radius:18px;background:var(--surface);color:var(--text)}.nav-card strong{display:block;margin-top:.6rem}.nav-icon{font-size:1.6rem}
.grid{display:grid;gap:1rem}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.stat{font-size:2rem;font-weight:900;color:var(--primary)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border)}.status{display:inline-block;padding:.25rem .5rem;border-radius:999px;background:var(--surface2);font-size:.72rem}.flash{margin-bottom:1rem;padding:.8rem;border:1px solid var(--border);border-radius:12px;background:var(--surface)}footer{text-align:center;padding:1.5rem;color:var(--muted);font-size:.8rem}
@media(max-width:800px){.hero{grid-template-columns:1fr}.nav-cards{grid-template-columns:repeat(2,1fr)}.grid-2,.grid-3{grid-template-columns:1fr}.brand>span:last-child,.profile-chip{display:none}}@media(max-width:560px){.form-row{grid-template-columns:1fr}.hero{min-height:auto;border-radius:20px}.hero h1{font-size:2.7rem}.site-header{padding:.55rem}}

.text-icon{display:grid;place-items:center;text-decoration:none}
.kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.kpi{padding:1rem;border:1px solid var(--border);border-radius:18px;background:var(--surface)}
.kpi strong{display:block;font-size:1.75rem;color:var(--primary)}
.section-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.search-bar{display:flex;gap:.6rem;margin:1rem 0}.search-bar input{flex:1}
.location-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.location-card{display:flex;flex-direction:column;gap:.65rem;padding:1rem;border:1px solid var(--border);border-radius:18px;background:var(--surface);color:var(--text)}
.location-photo{height:135px;border-radius:13px;background:linear-gradient(135deg,#0a4ca3,#13a29b);display:grid;place-items:center;color:#fff;font-size:2rem;font-weight:900}
.location-meta{display:flex;flex-wrap:wrap;gap:.35rem}.pill{display:inline-flex;padding:.25rem .5rem;border-radius:999px;background:var(--surface2);font-size:.72rem}
.owner-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.owner-tabs a{padding:.55rem .8rem;border:1px solid var(--border);border-radius:999px;background:var(--surface)}
.detail-hero{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.map-placeholder{min-height:300px;border-radius:20px;background:linear-gradient(145deg,#b9d4a6,#6fa285);position:relative;overflow:hidden}.map-placeholder:before,.map-placeholder:after{content:"";position:absolute;background:#e4e5df}.map-placeholder:before{width:120%;height:35px;left:-10%;top:45%;transform:rotate(-9deg)}.map-placeholder:after{width:35px;height:120%;top:-10%;left:55%;transform:rotate(13deg)}.map-pin{position:absolute;z-index:2;left:48%;top:40%;width:42px;height:42px;border-radius:50% 50% 50% 0;background:#d92929;transform:rotate(-45deg);box-shadow:var(--shadow)}.map-pin:after{content:"";position:absolute;width:14px;height:14px;border-radius:50%;background:white;left:14px;top:14px}
.notice{padding:1rem;border-left:5px solid var(--primary);background:var(--surface2);border-radius:12px}
@media(max-width:900px){.kpi-row{grid-template-columns:repeat(2,1fr)}.location-grid{grid-template-columns:repeat(2,1fr)}.detail-hero{grid-template-columns:1fr}}
@media(max-width:560px){.location-grid,.kpi-row{grid-template-columns:1fr}.search-bar{flex-direction:column}}

.badge-wrap{position:relative}.count-badge{position:absolute;right:-4px;top:-5px;display:grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#d92929;color:#fff;font-size:.68rem;font-weight:900;border:2px solid var(--surface)}
.profile-hero{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center}.profile-avatar{display:grid;place-items:center;width:92px;height:92px;border-radius:28px;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-size:2rem;font-weight:900}
.tabs{display:flex;gap:.45rem;flex-wrap:wrap;margin:1rem 0}.tabs a{padding:.55rem .8rem;border:1px solid var(--border);border-radius:999px;background:var(--surface)}
.friend-row,.message-row,.place-row{display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:center;padding:.8rem 0;border-bottom:1px solid var(--border)}.friend-row:last-child,.message-row:last-child,.place-row:last-child{border-bottom:0}
.mini-avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--primary);color:#fff;font-weight:900}
.message-note{padding:.8rem;border-radius:14px;background:var(--surface2);margin:.5rem 0}.chat{display:grid;gap:.7rem}.bubble{max-width:78%;padding:.75rem .9rem;border-radius:16px;background:var(--surface2)}.bubble.me{margin-left:auto;background:var(--primary);color:#fff}
.action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.action-card{padding:1rem;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.progress{height:10px;border-radius:999px;background:var(--surface2);overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--accent))}
@media(max-width:700px){.profile-hero{grid-template-columns:auto 1fr}.profile-hero>.actions{grid-column:1/-1}.action-grid{grid-template-columns:1fr}.friend-row,.message-row,.place-row{grid-template-columns:auto 1fr}.friend-row>.actions,.message-row>.actions,.place-row>.actions{grid-column:1/-1}}

.course-card{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:1rem;border:1px solid var(--border);border-radius:18px;background:var(--surface)}
.course-code{font-weight:900;color:var(--primary);letter-spacing:.03em}.course-meta{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}
.inbox-layout{display:grid;grid-template-columns:320px 1fr;gap:1rem}.mail-list{display:grid;gap:.55rem}.mail-item{display:grid;grid-template-columns:auto 1fr auto;gap:.65rem;padding:.75rem;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--text)}.mail-item.unread{border-left:5px solid var(--primary);font-weight:700}.mail-preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.priority-urgent{color:#b31626}.priority-important{color:#a06400}
.brief-group{padding:1rem;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.brief-group h3{margin-top:0}.source-link{display:block;margin-top:.4rem;font-size:.8rem}
.roster-status{display:inline-flex;padding:.25rem .55rem;border-radius:999px;background:var(--surface2);font-size:.72rem}.roster-added{background:#d9f8ef;color:#08755d}.roster-invite_pending{background:#fff0c9;color:#8a5b00}.roster-removed{background:#ffe2e5;color:#9c1623}
@media(max-width:850px){.inbox-layout{grid-template-columns:1fr}.mail-preview{max-width:60vw}}

:root{
 --navy:#082b5b;--navy-2:#0c427f;--blue:#0b67d8;--cyan:#18a8b7;--sky:#eaf4ff;
 --surface-glass:rgba(255,255,255,.82);--shadow-lg:0 20px 55px rgba(8,43,91,.14);
 --mobile-nav-height:76px;
}
body{
 background:
 radial-gradient(circle at top right,rgba(24,168,183,.12),transparent 34rem),
 linear-gradient(180deg,#f5f9ff 0%,#edf5ff 100%);
 min-height:100vh;
}
.site-header{
 position:sticky;top:0;z-index:40;
 background:rgba(255,255,255,.88);
 backdrop-filter:blur(18px);
 border-bottom:1px solid rgba(8,43,91,.1);
 box-shadow:0 6px 24px rgba(8,43,91,.06);
}
.brand-mark{
 background:linear-gradient(145deg,var(--blue),var(--cyan));
 border-radius:16px;box-shadow:0 8px 20px rgba(11,103,216,.25);
}
.app-shell{max-width:1180px;padding-top:2rem;padding-bottom:7rem}
.card,.course-card,.brief-group{
 border:1px solid rgba(8,43,91,.1);
 background:var(--surface-glass);
 backdrop-filter:blur(16px);
 box-shadow:0 12px 35px rgba(8,43,91,.08);
}
.btn{border-radius:14px;box-shadow:0 8px 18px rgba(11,103,216,.16)}
.hero-app{
 border-radius:30px;padding:2rem;
 color:#fff;background:
 linear-gradient(135deg,rgba(8,43,91,.98),rgba(11,103,216,.94) 60%,rgba(24,168,183,.95));
 box-shadow:var(--shadow-lg);overflow:hidden;position:relative;
}
.hero-app:after{
 content:"";position:absolute;width:300px;height:300px;border-radius:50%;
 background:rgba(255,255,255,.08);right:-80px;top:-100px;
}
.hero-app>*{position:relative;z-index:1}
.hero-app h1{font-size:clamp(2.1rem,6vw,4.5rem);line-height:.95;margin:.5rem 0 1rem;max-width:720px}
.hero-app p{font-size:1.1rem;max-width:660px}
.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.4rem}
.hero-actions .btn.secondary{background:#fff;color:var(--blue)}
.glass-panel{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);border-radius:22px;padding:1rem}
.app-section-title{display:flex;justify-content:space-between;align-items:end;margin:1.8rem 0 .8rem}
.app-section-title h2{margin:0;font-size:1.5rem}
.location-card{
 overflow:hidden;border-radius:24px;background:#fff;border:1px solid rgba(8,43,91,.1);
 box-shadow:0 14px 35px rgba(8,43,91,.08);transition:.2s transform,.2s box-shadow;
}
.location-card:hover{transform:translateY(-3px);box-shadow:0 20px 45px rgba(8,43,91,.14)}
.location-card-media{
 min-height:150px;display:grid;place-items:center;color:#fff;font-weight:900;font-size:2.4rem;
 background:linear-gradient(135deg,var(--navy-2),var(--cyan));
}
.location-card-body{padding:1rem}
.fallback-badge{display:inline-flex;font-size:.7rem;padding:.2rem .45rem;border-radius:999px;background:#fff1c7;color:#805800;margin-left:.35rem}
.mobile-nav{
 display:none;position:fixed;left:0;right:0;bottom:0;z-index:50;height:var(--mobile-nav-height);
 background:rgba(255,255,255,.94);backdrop-filter:blur(18px);
 border-top:1px solid rgba(8,43,91,.12);padding:8px max(12px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom));
}
.mobile-nav a{display:grid;place-items:center;gap:.15rem;color:#66758d;font-size:.72rem;font-weight:700}
.mobile-nav a span{font-size:1.3rem}.mobile-nav a.active{color:var(--blue)}
.ai-fab{
 position:fixed;right:22px;bottom:92px;z-index:52;width:62px;height:62px;border-radius:50%;
 display:grid;place-items:center;border:0;color:#fff;font-size:1.35rem;font-weight:900;
 background:linear-gradient(145deg,var(--blue),var(--cyan));box-shadow:0 16px 35px rgba(11,103,216,.35);
}
.language-beta-banner{
 background:#fff7db;color:#785800;border:1px solid #ffe099;padding:.7rem 1rem;text-align:center;font-size:.85rem;
}
.guest-banner{position:sticky;top:0;z-index:60;background:linear-gradient(90deg,#bf1029,#e11937)}
.owner-tabs{position:sticky;top:78px;z-index:25;background:rgba(245,249,255,.92);backdrop-filter:blur(12px);padding:.55rem;border-radius:16px}
.empty-state{padding:2.2rem;text-align:center;border:1px dashed rgba(8,43,91,.2);border-radius:20px;background:rgba(255,255,255,.5)}
:root[data-theme="dark"] body{background:linear-gradient(180deg,#07111f,#0a203b)}
:root[data-theme="dark"] .site-header,:root[data-theme="dark"] .mobile-nav{background:rgba(7,17,31,.88)}
@media(max-width:760px){
 .site-header{padding:.65rem .8rem}.brand small,.brand strong{display:none}
 .header-actions .profile-chip,.header-actions>a[title="Friends"],.header-actions>a[title="Messages"]{display:none}
 .app-shell{padding:.9rem .8rem 7.5rem}
 .hero-app{padding:1.4rem;border-radius:24px}.hero-app h1{font-size:2.65rem}
 .mobile-nav{display:grid;grid-template-columns:repeat(5,1fr)}
 .ai-fab{bottom:94px;right:16px}
 .owner-tabs{top:66px;overflow-x:auto;white-space:nowrap;display:flex}
 .owner-tabs a{flex:0 0 auto}
 .grid-3{grid-template-columns:1fr}
}

/* v0.0.6.1 mobile hotfix */
html,body{max-width:100%;overflow-x:hidden}
.site-header-inner,.header-actions{min-width:0}
.header-actions{flex-wrap:nowrap}
.language-btn{white-space:nowrap;min-width:92px}
.hero-app .pill{max-width:100%;white-space:normal;line-height:1.35}
.hero-app{margin-inline:0}
@media(max-width:430px){
 .site-header{padding:.55rem .65rem}
 .header-actions{gap:.38rem}
 .header-actions .icon-btn{width:42px;height:42px;padding:0}
 .language-btn{min-width:105px;padding:.55rem .6rem}
 .header-actions .btn{padding:.7rem .8rem;font-size:.9rem}
 .hero-app{padding:1.25rem 1.1rem}
 .hero-app h1{font-size:2.45rem;line-height:1}
 .hero-app p{font-size:1rem}
 .hero-actions{display:grid;grid-template-columns:1fr 1fr}
 .hero-actions .btn{width:100%;text-align:center}
 .hero-actions .btn.outline{grid-column:1/-1}
}

/* =========================================================
   v0.0.7 Premium Mobile Dashboard & Compact Responsive System
   ========================================================= */
:root{
 --ink:#f7fbff;
 --muted:#8fa6c6;
 --deep:#031020;
 --deep-2:#06182e;
 --panel:#071c35;
 --panel-2:#0b2748;
 --line:rgba(120,174,255,.18);
 --blue:#0878ff;
 --cyan:#00c7d7;
 --green:#00d49a;
 --red:#ff2f52;
 --purple:#8d45ff;
 --amber:#ffc247;
 --shadow-premium:0 14px 40px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.035);
}
*{box-sizing:border-box}
html{background:var(--deep)}
body.app-body{
 margin:0;min-width:320px;color:var(--ink);
 background:
 radial-gradient(circle at 90% -10%,rgba(8,120,255,.18),transparent 30rem),
 linear-gradient(180deg,#020b17 0%,#06152a 48%,#031020 100%);
 font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
a{color:inherit}
.native-shell{width:min(100%,1040px);margin:0 auto;padding:12px 12px 94px}
.native-header{
 position:sticky;top:0;z-index:80;
 min-height:70px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;
 padding:10px 14px;background:rgba(2,11,23,.93);backdrop-filter:blur(20px);
 border-bottom:1px solid var(--line);box-shadow:0 10px 30px rgba(0,0,0,.22);
}
.native-brand{display:flex;align-items:center;gap:9px;text-decoration:none;min-width:0}
.native-logo{
 width:46px;height:46px;display:grid;place-items:center;border-radius:14px;
 background:linear-gradient(145deg,#0a70e8,#00a8b9);font-weight:900;color:#fff;
 box-shadow:0 8px 22px rgba(0,123,255,.3);
}
.native-brand-copy{display:grid;line-height:1.05}
.native-brand-copy strong{font-size:.87rem}
.native-brand-copy small{font-size:.68rem;color:#66c6ff;margin-top:4px}
.native-title{text-align:center;line-height:1}
.native-title strong{display:block;font-size:1.05rem}
.native-title small{font-size:.66rem;color:var(--muted)}
.native-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}
.native-action{position:relative;display:grid;place-items:center;gap:2px;text-decoration:none;min-width:44px}
.native-action span{font-size:1.05rem}.native-action small{font-size:.58rem;color:#bcd0ec}
.native-language{
 display:grid;place-items:center;text-decoration:none;font-weight:900;font-size:.75rem;
 min-width:54px;padding:7px;border:1px solid var(--line);border-radius:12px;background:#0a203c;
}
.native-language small{font-size:.5rem;color:var(--amber)}
.native-profile{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;text-decoration:none;padding:2px;background:linear-gradient(145deg,#ffb15c,#7e3cff)}
.native-profile span{width:100%;height:100%;border-radius:50%;display:grid;place-items:center;background:#112845;font-weight:900}
.guest-banner.compact{padding:7px 10px;font-size:.72rem;gap:6px;justify-content:center;flex-wrap:wrap;background:linear-gradient(90deg,#c30f2e,#ec2a47)}
.guest-dot{opacity:.65}
.language-beta-banner{font-size:.72rem;padding:7px 12px;background:#4a3507;color:#ffd86c;border-color:#7b5c14}
.premium-panel{
 background:
 linear-gradient(145deg,rgba(10,35,66,.98),rgba(5,23,45,.98));
 border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-premium);
}
.student-hero{padding:16px}
.student-hero-top{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px}
.student-avatar.large{
 width:76px;height:76px;display:grid;place-items:center;border-radius:50%;font-size:2rem;font-weight:900;
 background:linear-gradient(145deg,#24456d,#0c1e37);border:2px solid #fff;position:relative;
}
.student-avatar.large span{position:absolute;right:2px;bottom:4px;width:15px;height:15px;border-radius:50%;background:var(--green);border:2px solid #fff}
.student-greeting p,.student-greeting h1,.student-greeting strong,.student-greeting em{margin:0;display:block}
.student-greeting p{font-size:.8rem;color:#c5d6ed}.student-greeting h1{font-size:1.55rem;line-height:1.08;margin:2px 0 5px}
.student-greeting strong{font-size:.82rem;color:#5ae2be}.student-greeting em{font-size:.72rem;color:#a9bdd8;margin-top:5px}
.student-weather{text-align:right;display:grid;gap:4px}.student-weather small,.student-weather span{font-size:.65rem;color:#b7c8df}.student-weather strong{font-size:1.05rem}
.ai-search{
 display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-top:13px;padding:8px 10px;
 border:1px solid rgba(0,126,255,.45);border-radius:16px;background:#05152a;
}
.ai-search span{color:#54a9ff}.ai-search input{min-width:0;border:0;background:transparent;color:#fff;padding:4px;font-size:.85rem;outline:0}.ai-search button{border:0;background:transparent;font-size:1rem}
.quick-action-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:10px 0}
.quick-action-grid a{
 min-width:0;min-height:54px;padding:8px 5px;border-radius:14px;text-decoration:none;
 display:flex;align-items:center;justify-content:center;gap:5px;text-align:center;
 background:linear-gradient(145deg,#0b2a50,#071a33);border:1px solid var(--line);
 box-shadow:inset 0 1px 0 rgba(255,255,255,.035);font-size:.72rem;font-weight:800;
}
.quick-action-grid a span{color:#27a4ff;font-size:1rem}.quick-action-grid .ai-brief-action{background:linear-gradient(145deg,#183a74,#5e22a5)}
.quick-action-grid small{font-size:.48rem;color:#e9ceff}
.priority-banner{
 display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 12px;margin-bottom:10px;
 border-radius:14px;text-decoration:none;background:linear-gradient(90deg,#3c0c1a,#101a33);
 border:1px solid rgba(255,47,82,.55);box-shadow:0 0 18px rgba(255,47,82,.14);
}
.priority-banner span{font-size:.67rem;background:var(--red);padding:5px 7px;border-radius:7px;font-weight:900}
.priority-banner strong{min-width:0;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.priority-banner b{font-size:.72rem;background:var(--blue);padding:7px 14px;border-radius:9px}
.schedule-panel,.campus-map-panel,.brief-panel,.quick-places-panel,.live-help-panel{padding:13px;margin-top:10px}
.panel-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px}
.panel-title h2{font-size:.92rem;margin:0}.panel-title h2 small{font-size:.55rem;color:var(--green)}.panel-title a{font-size:.65rem;color:#39a8ff;text-decoration:none}
.schedule-timeline{position:relative}
.schedule-row{
 display:grid;grid-template-columns:68px 14px minmax(0,1fr) 72px 14px;gap:8px;align-items:center;
 min-height:82px;padding:8px 4px;border-bottom:1px solid rgba(120,174,255,.1);
}
.schedule-row:last-child{border-bottom:0}.schedule-row.next-class{border-radius:14px;background:linear-gradient(90deg,rgba(0,113,255,.15),rgba(0,91,210,.04))}
.schedule-time{text-align:right}.schedule-time span{display:block;font-size:.75rem;color:#39d6ba;font-weight:900}.schedule-time small{display:inline-block;margin-top:5px;padding:3px 6px;border-radius:6px;background:var(--blue);font-size:.5rem}
.timeline-dot{width:10px;height:10px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan)}
.schedule-main{min-width:0}.schedule-title{display:flex;gap:8px;align-items:baseline;min-width:0}.schedule-title strong{font-size:.78rem}.schedule-title span{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#d4e1f4}
.schedule-main p{margin:3px 0;font-size:.62rem;color:#8fa8c8}.schedule-actions{display:flex;gap:6px;margin-top:7px}
.compact-btn{padding:6px 11px;font-size:.62rem;border-radius:8px}
.schedule-thumb{height:52px;border-radius:9px;display:grid;place-items:center;font-weight:900;background:linear-gradient(145deg,#315b86,#153252);border:1px solid rgba(255,255,255,.15)}
.schedule-open{text-decoration:none;font-size:1.25rem;color:#fff}
.campus-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 128px;gap:9px}
.campus-map-preview{
 min-height:190px;position:relative;overflow:hidden;border-radius:14px;
 background:linear-gradient(145deg,#214c49,#6a8d68);border:1px solid var(--line);
}
.map-grid{position:absolute;inset:0;background:
 linear-gradient(35deg,transparent 48%,rgba(255,255,255,.12) 49%,rgba(255,255,255,.12) 51%,transparent 52%),
 linear-gradient(145deg,transparent 47%,rgba(3,20,36,.5) 48%,rgba(3,20,36,.5) 53%,transparent 54%);
 background-size:70px 70px,95px 95px}
.map-pin{position:absolute;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--blue);font-size:.7rem;font-weight:900;box-shadow:0 0 15px rgba(0,119,255,.45)}
.pin-you{left:39%;bottom:25%}.pin-you b{position:absolute;left:24px;top:4px;background:#064baf;padding:4px 7px;border-radius:8px;white-space:nowrap;font-size:.55rem}
.pin-one{right:17%;top:22%}.pin-two{left:19%;top:25%;background:#20b5ff}
.map-route{position:absolute;left:42%;bottom:31%;width:41%;height:48%;border-top:4px dotted #60d7ff;border-right:4px dotted #60d7ff;border-radius:0 22px 0 0;transform:rotate(-9deg)}
.map-destination{position:absolute;right:20%;top:7%;padding:5px 8px;border-radius:8px;background:#073f93;font-size:.62rem;text-align:center}.map-destination small{color:#70e8ff}
.map-shortcuts{display:grid;gap:7px}.map-shortcuts a{display:flex;align-items:center;padding:8px;border-radius:9px;text-decoration:none;background:#09203c;border:1px solid var(--line);font-size:.65rem}
.brief-panel{border-color:rgba(137,67,255,.42);box-shadow:0 0 22px rgba(137,67,255,.13)}
.brief-summary-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}
.brief-summary-grid div{min-width:0;padding:8px 4px;border-radius:11px;text-align:center;background:#f5f6ff;color:#13233a}
.brief-summary-grid span,.brief-summary-grid strong,.brief-summary-grid small{display:block}.brief-summary-grid span{font-size:.9rem}.brief-summary-grid strong{font-size:.82rem}.brief-summary-grid small{font-size:.51rem;line-height:1.1}
.quick-places-row{display:flex;gap:7px;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}.quick-places-row::-webkit-scrollbar{display:none}
.quick-places-row a{flex:0 0 auto;display:flex;align-items:center;gap:7px;padding:6px 9px;border-radius:10px;text-decoration:none;background:#091d38;border:1px solid var(--line)}
.quick-places-row span{width:31px;height:27px;border-radius:7px;display:grid;place-items:center;background:#1b446a;font-size:.55rem;font-weight:900}.quick-places-row small{font-size:.62rem}
.live-help-panel{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}
.help-avatar{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#1b5e7c,#10243f);font-weight:900;border:2px solid #fff}
.live-help-panel h2,.live-help-panel p{margin:0}.live-help-panel h2{font-size:.9rem}.live-help-panel p{font-size:.65rem;color:#b8c7dc;margin-top:3px}.live-help-panel small{font-size:.58rem;color:var(--green)}
.live-help-btn{background:linear-gradient(145deg,#00aa76,#00d499);padding:10px 15px;font-size:.7rem}
.premium-mobile-nav{
 display:grid;grid-template-columns:repeat(6,1fr);height:auto;min-height:68px;background:rgba(2,11,23,.97);
 border-top:1px solid var(--line);padding:7px 4px calc(6px + env(safe-area-inset-bottom));
}
.premium-mobile-nav a{color:#8fa5c1}.premium-mobile-nav a.active{color:#2da3ff}.premium-mobile-nav a span{font-size:1rem}.premium-mobile-nav a small{font-size:.55rem}
.compact-ai-fab{width:50px;height:50px;right:14px;bottom:80px;font-size:1rem;background:linear-gradient(145deg,#0586ee,#00b4c8)}
.site-footer{display:none}
.compact-search-bar{padding:10px;background:#071c35!important}.compact-search-bar input{background:#031326;color:#fff;border-color:var(--line)}
.location-card{background:#071c35;color:#fff;border-color:var(--line)}.location-card-body p,.location-card-body small{color:#9db0ca}.location-card-media{min-height:110px}
.compact-empty{padding:20px}
@media(min-width:900px){
 .native-shell{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:12px;align-items:start}
 .student-hero,.quick-action-grid,.priority-banner,.schedule-panel{grid-column:1}
 .campus-map-panel,.brief-panel,.quick-places-panel,.live-help-panel{grid-column:2}
 .campus-map-panel{grid-row:1 / span 3;margin-top:0}
 .brief-summary-grid{grid-template-columns:repeat(3,1fr)}
 .quick-action-grid{margin-top:0}
}
@media(max-width:760px){
 .native-header{grid-template-columns:auto 1fr;gap:8px;padding:8px 10px;min-height:62px}
 .native-title{display:none}
 .native-actions{gap:5px}
 .native-brand-copy{display:none}
 .native-logo{width:42px;height:42px}
 .native-action small{display:none}
 .native-action{min-width:33px}
 .native-language{min-width:47px;font-size:.65rem;padding:6px}
 .native-profile{width:36px;height:36px}
 .native-shell{padding:10px 8px 88px}
 .student-hero{padding:13px}
 .student-avatar.large{width:62px;height:62px;font-size:1.5rem}
 .student-hero-top{gap:10px}
 .student-greeting h1{font-size:1.3rem}
 .student-weather strong{font-size:.9rem}
 .quick-action-grid{gap:6px}.quick-action-grid a{font-size:.62rem;min-height:48px;padding:6px 3px}
 .priority-banner{padding:8px;gap:7px}.priority-banner span{font-size:.55rem}.priority-banner strong{font-size:.68rem}.priority-banner b{padding:6px 9px}
 .schedule-panel,.campus-map-panel,.brief-panel,.quick-places-panel,.live-help-panel{padding:10px}
 .campus-map-layout{grid-template-columns:1fr}.map-shortcuts{grid-template-columns:repeat(2,1fr)}
 .brief-summary-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:430px){
 .native-shell{padding-inline:6px}
 .native-header{padding-inline:7px}
 .native-actions{gap:3px}
 .native-action{min-width:29px}.native-action span{font-size:.95rem}
 .native-language{min-width:43px;padding:5px;font-size:.58rem}
 .student-hero{border-radius:16px}
 .student-hero-top{grid-template-columns:auto 1fr}
 .student-weather{display:none}
 .student-avatar.large{width:55px;height:55px}
 .student-greeting p{font-size:.7rem}.student-greeting h1{font-size:1.18rem}.student-greeting strong{font-size:.7rem}.student-greeting em{font-size:.62rem}
 .ai-search{padding:7px 8px}.ai-search input{font-size:.75rem}
 .quick-action-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
 .quick-action-grid a{display:grid;gap:2px;font-size:.52rem;line-height:1.05}
 .quick-action-grid a span{font-size:.86rem}
 .priority-banner{grid-template-columns:auto minmax(0,1fr) auto}
 .priority-banner span{padding:4px 5px}.priority-banner strong{font-size:.62rem}
 .schedule-row{grid-template-columns:55px 10px minmax(0,1fr) 48px 10px;gap:5px;padding-inline:0}
 .schedule-time span{font-size:.64rem}.schedule-title{display:grid;gap:1px}.schedule-title span{font-size:.61rem}
 .schedule-main p{font-size:.54rem}.schedule-thumb{height:42px;font-size:.65rem}
 .schedule-actions{gap:4px}.compact-btn{padding:5px 7px;font-size:.53rem}
 .campus-map-preview{min-height:165px}.map-shortcuts a{font-size:.56rem;padding:7px}
 .brief-summary-grid{gap:4px}.brief-summary-grid div{padding:7px 2px}.brief-summary-grid small{font-size:.46rem}
 .live-help-panel{grid-template-columns:auto 1fr}.live-help-btn{grid-column:1/-1;width:100%;text-align:center}
 .premium-mobile-nav a small{font-size:.48rem}
 .compact-ai-fab{width:44px;height:44px;bottom:76px}
}

/* v0.0.8 Full Map and Premium Inbox */
.map-screen{padding:14px}.map-screen-head,.inbox-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.eyebrow{margin:0;color:#52b7ff;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}
.map-screen h1,.inbox-head h1{margin:2px 0;font-size:1.6rem}.status-live{font-size:.6rem;color:var(--green)}
.map-screen-actions{display:flex;gap:6px}.map-screen-actions button{border:1px solid var(--line);background:#09203c;color:#fff;padding:7px 10px;border-radius:9px}
.map-destination-search,.inbox-search{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:12px;padding:8px 9px;border-radius:13px;background:#031326;border:1px solid var(--line)}
.map-destination-search input,.inbox-search input{border:0;background:transparent;color:#fff;min-width:0;outline:0}
.map-filter-row,.inbox-filter-row{display:flex;gap:6px;overflow-x:auto;padding:9px 0;scrollbar-width:none}.map-filter-row::-webkit-scrollbar,.inbox-filter-row::-webkit-scrollbar{display:none}
.map-filter-row a,.inbox-filter-row a{flex:0 0 auto;text-decoration:none;font-size:.62rem;padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:#071c35}
.map-filter-row a.active,.inbox-filter-row a.active{background:var(--blue);border-color:var(--blue)}
.full-map-canvas{height:390px;position:relative;overflow:hidden;border-radius:16px;background:linear-gradient(145deg,#224b49,#698a67);border:1px solid var(--line)}
.map-grid.large{position:absolute;inset:0;background:linear-gradient(30deg,transparent 48%,rgba(255,255,255,.12) 49%,rgba(255,255,255,.12) 51%,transparent 52%),linear-gradient(145deg,transparent 47%,rgba(3,20,36,.42) 48%,rgba(3,20,36,.42) 53%,transparent 54%);background-size:78px 78px,105px 105px}
.campus-shape{position:absolute;background:rgba(10,45,74,.72);border:2px solid rgba(140,207,255,.25);border-radius:9px}.shape-a{left:13%;top:18%;width:26%;height:20%}.shape-b{right:15%;top:24%;width:28%;height:25%}.shape-c{left:29%;bottom:13%;width:37%;height:23%}
.live-you{left:35%;bottom:23%}.live-destination{right:20%;top:20%;background:var(--red)}.live-route-line{position:absolute;left:39%;bottom:28%;width:42%;height:46%;border-top:5px dotted #43d6ff;border-right:5px dotted #43d6ff;border-radius:0 28px 0 0;transform:rotate(-8deg)}
.map-info-bubble{position:absolute;right:11%;top:8%;background:#073f93;padding:7px 10px;border-radius:9px;text-align:center;font-size:.68rem}.map-info-bubble small{display:block;color:#65e8ff}
.map-zoom-controls{position:absolute;right:10px;bottom:10px;display:grid;gap:5px}.map-zoom-controls button{width:34px;height:34px;border:0;border-radius:9px;background:rgba(3,19,38,.9);color:#fff;font-size:1rem}
.map-content-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:10px;margin-top:10px}.route-options-card,.destination-list-card,.recent-places-card{padding:12px}
.route-options-form{display:grid;gap:8px}.route-options-form label{display:grid;gap:4px;font-size:.66rem;color:#b6c9e2}.route-options-form select{width:100%;background:#04152b;color:#fff;border:1px solid var(--line);padding:8px;border-radius:8px}
.destination-list{display:grid;gap:6px}.destination-list a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:8px;border-radius:10px;text-decoration:none;background:#07182e;border:1px solid rgba(120,174,255,.11)}
.destination-icon{width:37px;height:37px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(145deg,#0e6ed7,#00aabb);font-size:.62rem;font-weight:900}.destination-list strong,.destination-list small{display:block}.destination-list strong{font-size:.7rem}.destination-list small{font-size:.56rem;color:#92a8c4}.destination-list b{font-size:.58rem;color:#46acff}
.recent-place-row{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none}.recent-place-row a{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:7px 9px;border-radius:9px;background:#081d37;text-decoration:none;border:1px solid var(--line)}.recent-place-row span{font-size:.58rem;font-weight:900}.recent-place-row small{font-size:.58rem}
.inbox-head{padding:14px}.inbox-head span{font-size:.68rem;color:#5ce7be}.ai-summary-btn{font-size:.68rem}.ai-summary-btn small{color:#ddc5ff}
.inbox-search{margin-top:10px}.inbox-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:10px}.message-list,.message-reader{padding:8px;min-height:560px}
.message-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;padding:10px 8px;border-bottom:1px solid rgba(120,174,255,.1);text-decoration:none;position:relative}.message-card.selected{background:rgba(0,113,255,.13);border-radius:11px}.message-card.unread{background:rgba(8,120,255,.08)}.message-card.urgent{border-left:3px solid var(--red)}.message-card.important{border-left:3px solid var(--amber)}
.sender-avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#1c5b8c,#0c2340);font-weight:900}.message-copy{min-width:0}.message-copy strong,.message-copy b,.message-copy small{display:block}.message-copy strong{font-size:.65rem}.message-copy b{font-size:.66rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:2px 0}.message-copy small{font-size:.56rem;color:#91a7c3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.message-meta{text-align:right;display:grid;align-content:start;gap:5px}.message-meta time{font-size:.5rem;color:#8ba0ba}.message-meta i{font-style:normal;color:#ffd766}.message-meta u{width:7px;height:7px;border-radius:50%;background:var(--blue);justify-self:end}
.reader-head{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:6px 6px 12px}.reader-head p,.reader-head h2,.reader-head small{margin:0}.reader-head p{font-size:.68rem;color:#7fc5ff}.reader-head h2{font-size:1.15rem;margin:3px 0}.reader-head small{font-size:.58rem;color:#8fa5c0}
.priority-chip{height:max-content;padding:5px 7px;border-radius:7px;font-size:.52rem;background:#17304d}.priority-chip.urgent{background:var(--red)}.priority-chip.important{background:#76530a;color:#ffd66f}
.reader-body{padding:16px 7px;font-size:.78rem;line-height:1.65;color:#d6e3f5;min-height:220px}.reader-actions{display:flex;gap:5px;flex-wrap:wrap}.reader-actions form{margin:0}.reader-actions button{border:1px solid var(--line);background:#09203c;color:#fff;padding:6px 8px;border-radius:7px;font-size:.56rem}
.reader-ai{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-top:14px;padding:10px;border-radius:11px;background:linear-gradient(145deg,#162a5c,#4a1d72);border:1px solid rgba(154,91,255,.35)}.reader-ai strong,.reader-ai p{margin:0}.reader-ai strong{font-size:.67rem}.reader-ai p{font-size:.54rem;color:#d7c8ec;margin-top:2px}.reader-ai a{font-size:.57rem;text-decoration:none}
@media(max-width:760px){
 .full-map-canvas{height:330px}.map-content-grid,.inbox-layout{grid-template-columns:1fr}
 .message-reader{min-height:auto}.message-list{min-height:auto;max-height:none}
}
@media(max-width:430px){
 .map-screen{padding:10px}.full-map-canvas{height:285px}.map-screen-head{align-items:flex-start}.map-screen h1{font-size:1.35rem}
 .map-filter-row a,.inbox-filter-row a{padding:6px 8px;font-size:.56rem}
 .map-content-grid{gap:7px}.route-options-card,.destination-list-card,.recent-places-card{padding:9px}
 .inbox-head{padding:10px}.inbox-head h1{font-size:1.35rem}.ai-summary-btn{padding:7px 9px}
 .message-card{padding:8px 5px}.sender-avatar{width:31px;height:31px}.message-copy b{font-size:.6rem}
}

/* ==========================================================
   v0.0.9 Theme Repair, Public Auth Shell & Role Navigation
   ========================================================== */

:root,
html[data-theme="light"]{
  color-scheme:light;
  --bg:#ffffff;
  --surface:#ffffff;
  --surface2:#eef5ff;
  --text:#101820;
  --muted:#55657a;
  --primary:#075fd8;
  --accent:#008fa3;
  --danger:#c71935;
  --border:#cddaea;
  --shadow:0 14px 34px rgba(20,55,100,.12);

  --page-bg:#ffffff;
  --page-text:#101820;
  --page-muted:#55657a;
  --panel-bg:#ffffff;
  --panel-alt:#edf5ff;
  --panel-text:#101820;
  --heading:#075fd8;
  --input-bg:#ffffff;
  --input-text:#101820;
  --input-placeholder:#6d7785;
  --header-bg:rgba(255,255,255,.96);
  --nav-bg:rgba(255,255,255,.97);
  --nav-text:#51647d;
  --soft-blue:#e8f2ff;
}

html[data-theme="dark"]{
  color-scheme:dark;
  --bg:#000000;
  --surface:#07182d;
  --surface2:#0b2746;
  --text:#ffffff;
  --muted:#a9bad0;
  --primary:#2a8cff;
  --accent:#00c5d4;
  --danger:#f02e4f;
  --border:#23405f;
  --shadow:0 16px 42px rgba(0,0,0,.46);

  --page-bg:#000000;
  --page-text:#ffffff;
  --page-muted:#a9bad0;
  --panel-bg:#07182d;
  --panel-alt:#0b2746;
  --panel-text:#ffffff;
  --heading:#59a7ff;
  --input-bg:#020b16;
  --input-text:#ffffff;
  --input-placeholder:#8294aa;
  --header-bg:rgba(0,0,0,.94);
  --nav-bg:rgba(0,0,0,.97);
  --nav-text:#a9bad0;
  --soft-blue:#092541;
}

html,
body.app-body{
  background:var(--page-bg)!important;
  color:var(--page-text)!important;
}

body.app-body{
  min-height:100vh;
  background-image:none!important;
}

h1,h2,h3,h4,h5,h6{
  color:var(--heading);
}

p,li,td,th,label,small,strong,span{
  text-shadow:none;
}

a{
  color:var(--primary);
}

input,
select,
textarea{
  background:var(--input-bg)!important;
  color:var(--input-text)!important;
  border-color:var(--border)!important;
  caret-color:var(--primary);
}

input::placeholder,
textarea::placeholder{
  color:var(--input-placeholder)!important;
  opacity:1;
}

input:focus,
select:focus,
textarea:focus{
  outline:3px solid color-mix(in srgb,var(--primary) 24%,transparent);
  border-color:var(--primary)!important;
}

.card,
.auth-card,
.kpi,
.nav-card,
.course-card,
.action-card,
.location-card,
.message-list,
.message-reader,
.route-options-card,
.destination-list-card,
.recent-places-card,
.owner-tabs,
.notice,
.flash{
  background:var(--panel-bg)!important;
  color:var(--panel-text)!important;
  border-color:var(--border)!important;
}

.card h1,.card h2,.card h3,
.kpi h1,.kpi h2,.kpi h3,
.auth-card h1{
  color:var(--heading)!important;
}

.muted,
.card p,
.card small,
.kpi small,
.location-card-body p,
.location-card-body small{
  color:var(--page-muted)!important;
}

/* Intentional colored panels keep white text on non-white backgrounds. */
.hero-app,
.welcome-hero,
.student-hero,
.priority-banner.urgent,
.priority-banner.important,
.live-help-btn,
.btn,
.guest-banner{
  color:#ffffff!important;
}

.hero-app h1,.hero-app h2,.hero-app h3,
.welcome-hero h1,.welcome-hero h2,.welcome-hero h3,
.student-hero h1,.student-hero h2,.student-hero h3{
  color:#ffffff!important;
}

.btn{
  background:#075fd8!important;
  color:#ffffff!important;
  border:1px solid #075fd8!important;
}

.btn.secondary{
  background:var(--panel-bg)!important;
  color:var(--primary)!important;
  border-color:var(--border)!important;
}

.btn.outline,
.btn.ghost{
  background:transparent!important;
  color:inherit!important;
  border-color:currentColor!important;
}

.flash{
  margin:0 auto 14px;
  width:min(100%,720px);
  border-radius:12px;
  padding:12px 14px;
  font-weight:700;
}

.flash.success{
  background:#073f7a!important;
  border-color:#0b66bd!important;
  color:#ffffff!important;
}

.flash.error{
  background:#b4112b!important;
  border-color:#ec3151!important;
  color:#ffffff!important;
}

.flash.warning{
  background:#ffd66b!important;
  border-color:#c18c00!important;
  color:#2a2100!important;
}

.flash.info{
  background:#0b4e8f!important;
  border-color:#2684df!important;
  color:#ffffff!important;
}

/* Public pages use only the compact authentication header. */
.public-mode .public-shell{
  display:block!important;
  width:min(100% - 24px,940px)!important;
  margin:0 auto!important;
  padding:28px 0 60px!important;
}

.public-mode .site-footer,
.public-mode .premium-mobile-nav,
.public-mode .ai-fab{
  display:none!important;
}

.public-header{
  position:sticky;
  top:0;
  z-index:90;
  min-height:68px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:9px clamp(10px,3vw,28px);
  background:var(--header-bg);
  border-bottom:1px solid var(--border);
  box-shadow:0 8px 26px rgba(22,55,98,.08);
  backdrop-filter:blur(18px);
}

.public-brand{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--page-text);
}

.public-brand>span:last-child{
  display:grid;
  line-height:1.05;
}

.public-brand strong{
  color:var(--page-text);
  font-size:.9rem;
}

.public-brand small{
  color:var(--primary);
  font-size:.7rem;
  margin-top:4px;
}

.public-controls{
  display:flex;
  align-items:center;
  gap:8px;
}

.theme-toggle{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border:1px solid var(--border);
  border-radius:13px;
  background:var(--panel-bg);
  color:var(--page-text);
  cursor:pointer;
  box-shadow:0 5px 15px rgba(20,55,100,.08);
}

.theme-toggle:hover{
  border-color:var(--primary);
}

.theme-toggle span{
  color:inherit;
  font-size:1.05rem;
}

/* Auth cards */
.auth-wrap{
  min-height:calc(100dvh - 160px);
  display:grid;
  place-items:center;
  padding:8px 0 28px;
}

.auth-card{
  width:min(100%,460px)!important;
  padding:26px!important;
  border-radius:24px!important;
  box-shadow:var(--shadow)!important;
}

.auth-card-wide{
  width:min(100%,700px)!important;
}

.auth-heading{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:22px;
}

.auth-heading p,
.auth-heading h1{
  margin:0;
}

.auth-heading p{
  color:var(--page-muted)!important;
  font-size:.76rem;
}

.auth-heading h1{
  margin-top:3px;
  font-size:2rem;
  line-height:1;
}

.auth-symbol{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:15px;
  color:#ffffff!important;
  background:linear-gradient(145deg,#075fd8,#00a3b5);
  font-size:1.25rem;
  font-weight:900;
}

.auth-form label{
  color:var(--page-text)!important;
}

.auth-primary{
  width:100%;
}

.auth-divider{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--page-muted);
  font-size:.72rem;
}

.auth-divider::before,
.auth-divider::after{
  content:"";
  height:1px;
  flex:1;
  background:var(--border);
}

.google-icon-btn{
  width:50px;
  height:50px;
  justify-self:center;
  display:grid;
  place-items:center;
  padding:10px;
  border:1px solid var(--border);
  border-radius:50%;
  background:var(--panel-bg);
  cursor:pointer;
  box-shadow:0 7px 18px rgba(20,55,100,.11);
}

.google-icon-btn:hover{
  border-color:var(--primary);
  transform:translateY(-1px);
}

.google-icon-btn img{
  width:28px;
  height:28px;
}

.auth-switch{
  margin:20px 0 0;
  color:var(--page-muted)!important;
  font-size:.84rem;
}

.auth-switch a{
  font-weight:900;
}

/* Public welcome */
.public-welcome{
  display:grid;
  gap:14px;
}

.welcome-hero{
  overflow:hidden;
  position:relative;
  padding:clamp(24px,5vw,52px);
  border-radius:28px;
  background:
    radial-gradient(circle at 90% 8%,rgba(255,255,255,.12),transparent 24rem),
    linear-gradient(135deg,#083d83 0%,#0869d4 60%,#00a1af 100%);
  box-shadow:0 18px 48px rgba(6,81,166,.24);
}

.welcome-kicker{
  display:inline-flex;
  padding:6px 10px;
  border:1px solid rgba(255,255,255,.3);
  border-radius:999px;
  background:rgba(0,0,0,.16);
  color:#ffffff!important;
  font-size:.72rem;
  font-weight:800;
}

.welcome-hero h1{
  max-width:720px;
  margin:18px 0 10px;
  font-size:clamp(2.7rem,8vw,5.2rem);
  line-height:.92;
}

.welcome-tagline{
  margin:0 0 12px;
  color:#ffffff!important;
  font-size:1.15rem;
}

.welcome-copy{
  max-width:700px;
  color:#edf7ff!important;
  line-height:1.55;
  font-size:1rem;
}

.welcome-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:20px;
}

.welcome-actions form{
  margin:0;
}

.welcome-actions .btn{
  min-width:145px;
}

.guest-entry{
  background:#064fae!important;
}

.welcome-value{
  max-width:700px;
  margin-top:22px;
  padding:16px 18px;
  border:1px solid rgba(255,255,255,.27);
  border-radius:18px;
  background:rgba(255,255,255,.12);
}

.welcome-value strong,
.welcome-value p{
  color:#ffffff!important;
}

.welcome-value p{
  margin:7px 0 0;
  line-height:1.5;
}

.welcome-feature-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}

.welcome-feature-grid article{
  min-width:0;
  padding:20px;
  border:1px solid var(--border);
  border-radius:20px;
  background:var(--panel-bg);
  color:var(--panel-text);
  box-shadow:var(--shadow);
}

.welcome-feature-grid article>span{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:var(--soft-blue);
  color:var(--primary);
  font-weight:900;
}

.welcome-feature-grid h2{
  margin:14px 0 8px;
  font-size:1.05rem;
}

.welcome-feature-grid p{
  margin:0;
  color:var(--page-muted)!important;
  line-height:1.5;
}

/* Authenticated header and role navigation */
.native-header{
  background:var(--header-bg)!important;
  border-color:var(--border)!important;
}

.native-brand,
.native-brand-copy strong,
.native-title strong{
  color:var(--page-text)!important;
}

.native-brand-copy small,
.native-title small,
.native-action small{
  color:var(--page-muted)!important;
}

.native-action{
  color:var(--page-text)!important;
}

.native-language{
  background:var(--panel-bg)!important;
  color:var(--page-text)!important;
  border-color:var(--border)!important;
}

.native-profile span{
  background:var(--panel-alt)!important;
  color:var(--page-text)!important;
}

.authenticated-mode .role-shell{
  color:var(--page-text);
}

.premium-mobile-nav{
  background:var(--nav-bg)!important;
  border-color:var(--border)!important;
}

.premium-mobile-nav a{
  color:var(--nav-text)!important;
}

.premium-mobile-nav a.active{
  color:var(--primary)!important;
}

.role-navigation.role-guest{
  grid-template-columns:repeat(5,1fr)!important;
}

.role-navigation.role-faculty,
.role-navigation.role-staff,
.role-navigation.role-owner,
.role-navigation.role-admin,
.role-navigation.role-student{
  grid-template-columns:repeat(6,1fr)!important;
}

/* Light dashboard and application surfaces */
html[data-theme="light"] .premium-panel,
html[data-theme="light"] .schedule-panel,
html[data-theme="light"] .campus-map-panel,
html[data-theme="light"] .brief-panel,
html[data-theme="light"] .quick-places-panel,
html[data-theme="light"] .live-help-panel,
html[data-theme="light"] .map-screen,
html[data-theme="light"] .message-list,
html[data-theme="light"] .message-reader{
  background:#ffffff!important;
  color:#101820!important;
  border-color:#cfdeef!important;
  box-shadow:0 12px 32px rgba(20,55,100,.11)!important;
}

html[data-theme="light"] .student-hero{
  background:
    radial-gradient(circle at 88% 10%,rgba(255,255,255,.12),transparent 15rem),
    linear-gradient(135deg,#062c60,#075fd8 70%,#008da2)!important;
  color:#ffffff!important;
}

html[data-theme="light"] .quick-action-grid a,
html[data-theme="light"] .map-shortcuts a,
html[data-theme="light"] .destination-list a,
html[data-theme="light"] .recent-place-row a,
html[data-theme="light"] .quick-places-row a,
html[data-theme="light"] .message-card{
  background:#eef5ff!important;
  color:#101820!important;
  border-color:#cbdcf0!important;
}

html[data-theme="light"] .quick-action-grid a span,
html[data-theme="light"] .panel-title a,
html[data-theme="light"] .message-copy strong{
  color:#075fd8!important;
}

html[data-theme="light"] .panel-title h2,
html[data-theme="light"] .schedule-title strong,
html[data-theme="light"] .schedule-title span,
html[data-theme="light"] .live-help-panel h2,
html[data-theme="light"] .message-copy b,
html[data-theme="light"] .reader-head h2{
  color:#101820!important;
}

html[data-theme="light"] .schedule-main p,
html[data-theme="light"] .message-copy small,
html[data-theme="light"] .reader-head small,
html[data-theme="light"] .reader-body,
html[data-theme="light"] .destination-list small,
html[data-theme="light"] .live-help-panel p{
  color:#53677f!important;
}

html[data-theme="light"] .ai-search,
html[data-theme="light"] .map-destination-search,
html[data-theme="light"] .inbox-search{
  background:#ffffff!important;
  border-color:#aac7e8!important;
}

html[data-theme="light"] .ai-search input,
html[data-theme="light"] .map-destination-search input,
html[data-theme="light"] .inbox-search input{
  background:transparent!important;
  color:#101820!important;
}

html[data-theme="light"] .route-options-form select,
html[data-theme="light"] .reader-actions button,
html[data-theme="light"] .map-screen-actions button{
  background:#eef5ff!important;
  color:#101820!important;
  border-color:#cbdcf0!important;
}

html[data-theme="light"] .priority-banner{
  background:#fff1f4!important;
  color:#101820!important;
}

html[data-theme="light"] .priority-banner strong{
  color:#101820!important;
}

html[data-theme="light"] .owner-tabs{
  background:rgba(255,255,255,.94)!important;
}

html[data-theme="light"] .owner-tabs a,
html[data-theme="light"] .tabs a{
  background:#ffffff!important;
  color:#075fd8!important;
  border-color:#cddaea!important;
}

/* Dark theme: black body, dark-blue panels, white text. */
html[data-theme="dark"] .premium-panel,
html[data-theme="dark"] .card,
html[data-theme="dark"] .auth-card,
html[data-theme="dark"] .kpi,
html[data-theme="dark"] .course-card,
html[data-theme="dark"] .location-card,
html[data-theme="dark"] .message-list,
html[data-theme="dark"] .message-reader,
html[data-theme="dark"] .owner-tabs{
  background:#07182d!important;
  color:#ffffff!important;
  border-color:#23405f!important;
}

html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3{
  color:#59a7ff;
}

html[data-theme="dark"] .auth-card label,
html[data-theme="dark"] .auth-switch,
html[data-theme="dark"] .card p,
html[data-theme="dark"] .card small{
  color:#dce8f7!important;
}

html[data-theme="dark"] .quick-action-grid a,
html[data-theme="dark"] .map-shortcuts a,
html[data-theme="dark"] .destination-list a,
html[data-theme="dark"] .recent-place-row a,
html[data-theme="dark"] .quick-places-row a,
html[data-theme="dark"] .message-card{
  background:#0b2746!important;
  color:#ffffff!important;
  border-color:#23405f!important;
}

html[data-theme="dark"] .schedule-title strong,
html[data-theme="dark"] .schedule-title span,
html[data-theme="dark"] .panel-title h2,
html[data-theme="dark"] .message-copy b,
html[data-theme="dark"] .reader-head h2{
  color:#ffffff!important;
}

html[data-theme="dark"] .schedule-main p,
html[data-theme="dark"] .message-copy small,
html[data-theme="dark"] .reader-body,
html[data-theme="dark"] .destination-list small{
  color:#a9bad0!important;
}

/* Owner/faculty legacy components */
.table-wrap,
table{
  color:var(--page-text)!important;
}

th,td{
  border-color:var(--border)!important;
}

.status,
.pill,
.tabs a,
.owner-tabs a{
  background:var(--panel-alt)!important;
  color:var(--page-text)!important;
  border-color:var(--border)!important;
}

.notice{
  border-left-color:var(--primary)!important;
}

/* Compact responsive behavior */
@media(max-width:760px){
  .public-header{
    min-height:60px;
    padding:7px 9px;
  }

  .public-brand>span:last-child{
    display:none;
  }

  .public-mode .public-shell{
    width:min(100% - 14px,940px)!important;
    padding-top:12px!important;
  }

  .auth-wrap{
    min-height:calc(100dvh - 112px);
    align-items:start;
    padding-top:8px;
  }

  .auth-card{
    padding:20px!important;
    border-radius:20px!important;
  }

  .welcome-hero{
    padding:24px 20px;
    border-radius:22px;
  }

  .welcome-feature-grid{
    grid-template-columns:1fr;
    gap:9px;
  }

  .welcome-feature-grid article{
    padding:15px;
  }

  .role-navigation.role-guest{
    grid-template-columns:repeat(5,1fr)!important;
  }
}

@media(max-width:430px){
  .public-mode .public-shell{
    width:100%!important;
    padding-inline:7px!important;
  }

  .auth-card{
    width:100%!important;
    padding:18px!important;
  }

  .auth-heading h1{
    font-size:1.7rem;
  }

  .welcome-hero h1{
    font-size:2.7rem;
  }

  .welcome-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .welcome-actions form{
    grid-column:1/-1;
  }

  .welcome-actions form .btn,
  .welcome-actions>a{
    width:100%;
    min-width:0;
  }

  .theme-toggle{
    width:40px;
    height:40px;
  }

  .role-navigation a small{
    font-size:.47rem!important;
  }
}

/* v0.1.0 Campus Intelligence Foundation */
.campus-intelligence-hero,.map-platform-head,.feed-hero,.developer-hero,.section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px;padding:22px;border:1px solid var(--border);border-radius:24px;background:var(--panel-bg);box-shadow:var(--shadow)}
.campus-intelligence-hero h1,.map-platform-head h1,.feed-hero h1,.developer-hero h1{margin:3px 0 7px;font-size:clamp(1.8rem,5vw,3.2rem)}.campus-intelligence-hero p,.map-platform-head p,.feed-hero p,.developer-hero p{margin:0;color:var(--page-muted)}
.intelligence-search,.companion-search{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(150px,220px) auto;gap:8px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:17px;background:var(--panel-bg);box-shadow:var(--shadow)}.companion-search{grid-template-columns:auto minmax(0,1fr) auto}.intelligence-search>span,.companion-search>span{color:var(--primary);font-size:1.2rem}.intelligence-search input,.intelligence-search select,.companion-search input{border:0!important;min-width:0}
.intelligence-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:15px 2px 10px;color:var(--page-muted)}.intelligence-toolbar>div:last-child{display:flex;gap:10px}.intelligence-toolbar a{font-weight:800}
.place-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.place-result-card{overflow:hidden;border:1px solid var(--border);border-radius:20px;background:var(--panel-bg);box-shadow:var(--shadow)}
.place-result-media{height:150px;position:relative;display:grid;place-items:center;text-decoration:none;background:linear-gradient(145deg,#0753a8,#00a1af);color:#fff}.place-result-media img{width:100%;height:100%;object-fit:cover}.place-result-media>span{font-size:2.3rem;font-weight:900;color:#fff}.place-result-media>b{position:absolute;left:9px;bottom:9px;padding:5px 8px;border-radius:999px;background:rgba(0,0,0,.68);color:#fff;font-size:.58rem;text-transform:uppercase}
.place-result-body{padding:13px}.place-result-title{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.place-result-title h2,.place-result-title p{margin:0}.place-result-title h2{font-size:.94rem}.place-result-title h2 a{text-decoration:none}.place-result-title p{margin-top:5px;font-size:.66rem;color:var(--page-muted)}
.verification{display:inline-flex;align-items:center;white-space:nowrap;padding:4px 7px;border-radius:999px;font-size:.5rem;font-weight:900;text-transform:uppercase;background:#f1b83c;color:#271c00}.verification.verified{background:#08a776;color:#fff}.verification.prototype{background:#7a43c7;color:#fff}.verification.needs_review{background:#f1b83c;color:#271c00}.verification.archived{background:#657386;color:#fff}
.place-result-meta{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.place-result-meta span{padding:5px 7px;border-radius:999px;background:var(--panel-alt);font-size:.56rem}.place-result-actions{display:flex;gap:7px}.place-result-actions a{flex:1;text-align:center;text-decoration:none;padding:7px;border:1px solid var(--border);border-radius:9px;font-size:.62rem;font-weight:800}
.rich-place-hero{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr);overflow:hidden;border:1px solid var(--border);border-radius:26px;background:var(--panel-bg);box-shadow:var(--shadow)}.rich-place-photo{min-height:310px;display:grid;place-items:center;background:linear-gradient(145deg,#06499d,#00a4ae)}.rich-place-photo img{width:100%;height:100%;object-fit:cover}.rich-place-photo>span{font-size:4rem;color:#fff;font-weight:900}
.rich-place-copy{padding:28px}.place-type-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.place-type-row>span{color:var(--primary);font-size:.68rem;font-weight:900;text-transform:uppercase}.rich-place-copy h1{font-size:clamp(2rem,5vw,4rem);line-height:.95;margin:12px 0}.rich-place-copy>p{color:var(--page-muted);line-height:1.55}.place-status-row{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.place-status-row span{padding:6px 9px;border-radius:999px;background:var(--panel-alt);font-size:.62rem}.live-status.open{background:#08a776!important;color:#fff}.live-status.closed{background:#c71935!important;color:#fff}.live-status.busy{background:#e49700!important;color:#241800}
.place-detail-layout{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.place-detail-layout>.card{padding:18px}.place-facts dl{display:grid;grid-template-columns:140px 1fr;gap:7px 12px}.place-facts dt{color:var(--page-muted);font-size:.68rem}.place-facts dd{margin:0;font-weight:700;font-size:.72rem}.readiness-grid,.route-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.readiness-grid div,.route-kpis div{text-align:center;padding:12px;border-radius:13px;background:var(--panel-alt)}.readiness-grid strong,.readiness-grid small,.route-kpis strong,.route-kpis small{display:block}.readiness-grid strong,.route-kpis strong{font-size:1rem;color:var(--heading)}.readiness-grid small,.route-kpis small{font-size:.54rem;color:var(--page-muted)}
.place-gallery{margin-top:12px;padding:16px}.place-gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.place-gallery figure{margin:0}.place-gallery img{width:100%;height:160px;object-fit:cover;border-radius:12px}.place-gallery figcaption{font-size:.58rem;margin-top:5px;color:var(--page-muted)}
.entrance-row,.resource-row{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--border)}.entrance-row:last-child,.resource-row:last-child{border:0}.entrance-row strong,.entrance-row small,.resource-row strong,.resource-row small{display:block}.entrance-row small,.resource-row small{color:var(--page-muted);font-size:.58rem}
.nearby-section{margin-top:12px;padding:16px}.nearby-row{display:flex;gap:8px;overflow-x:auto}.nearby-row a{flex:0 0 150px;padding:10px;border:1px solid var(--border);border-radius:13px;background:var(--panel-alt);text-decoration:none}.nearby-row span,.nearby-row strong,.nearby-row small{display:block}.nearby-row span{color:var(--primary);font-weight:900}.nearby-row strong{font-size:.68rem;margin:5px 0}.nearby-row small{font-size:.55rem;color:var(--page-muted)}
.virtual-queue-card{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px;padding:16px}.virtual-queue-card h2,.virtual-queue-card p{margin:0}.virtual-queue-card p{color:var(--page-muted);font-size:.68rem;margin-top:4px}
.companion-screen{display:flex;align-items:center;gap:16px;padding:24px;border-radius:26px;background:linear-gradient(135deg,#051e42,#075fd8 70%,#00a0af);color:#fff;box-shadow:var(--shadow)}.companion-orb{width:82px;height:82px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 25%,#66eaff,#075fd8 55%,#051328);border:2px solid rgba(255,255,255,.55);box-shadow:0 0 30px rgba(0,191,255,.36);font-size:2rem;font-weight:900}.companion-intro h1,.companion-intro p{margin:0;color:#fff}.companion-intro h1{font-size:clamp(1.8rem,5vw,3.4rem)}.companion-intro>p:last-child{margin-top:6px;color:#dcecff}
.companion-search{margin-top:12px}.companion-prompts{display:flex;gap:7px;overflow-x:auto;padding:10px 0}.companion-prompts a{flex:0 0 auto;padding:7px 10px;border:1px solid var(--border);border-radius:999px;text-decoration:none;font-size:.62rem;background:var(--panel-bg)}
.companion-answer,.companion-capabilities{margin-top:8px;padding:20px;border:1px solid var(--border);border-radius:22px;background:var(--panel-bg);box-shadow:var(--shadow)}.answer-heading{display:flex;align-items:center;gap:10px}.answer-heading>span{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#075fd8;color:#fff;font-weight:900}.answer-heading h2,.answer-heading small{margin:0}.answer-heading small{color:var(--page-muted);font-size:.56rem}.companion-answer>p{line-height:1.6}.answer-results{display:grid;gap:7px}.answer-results article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--panel-alt)}.answer-results strong,.answer-results small{display:block}.answer-results small{font-size:.56rem;color:var(--page-muted)}.answer-results article>div:last-child{display:flex;gap:5px}.answer-results a{font-size:.56rem;text-decoration:none;font-weight:800}.capability-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.capability-grid div{padding:13px;border-radius:13px;background:var(--panel-alt)}.capability-grid span,.capability-grid strong,.capability-grid small{display:block}.capability-grid span{color:var(--primary);font-size:1.2rem}.capability-grid small{font-size:.56rem;color:var(--page-muted);margin-top:5px}
.feed-filters{display:flex;gap:7px;overflow-x:auto;margin-bottom:10px}.feed-filters a{flex:0 0 auto;padding:7px 10px;border:1px solid var(--border);border-radius:999px;background:var(--panel-bg);text-decoration:none;font-size:.6rem}.feed-filters a.active{background:var(--primary);color:#fff}.feed-list{display:grid;gap:9px}.feed-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:start;padding:15px;border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:17px;background:var(--panel-bg);box-shadow:var(--shadow)}.feed-card.urgent{border-left-color:#cf1535}.feed-card.important{border-left-color:#e09b00}.feed-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:13px;background:var(--panel-alt);color:var(--primary);font-weight:900}.feed-copy>div{display:flex;justify-content:space-between;gap:8px}.feed-copy span,.feed-copy time{font-size:.55rem;color:var(--page-muted)}.feed-copy h2,.feed-copy p{margin:0}.feed-copy h2{font-size:1rem;margin:4px 0}.feed-copy p{font-size:.68rem;color:var(--page-muted)}
.map-platform-head{padding:18px}.renderer-toggle{display:flex;padding:4px;border:1px solid var(--border);border-radius:12px;background:var(--panel-alt)}.renderer-toggle a{padding:7px 10px;border-radius:8px;text-decoration:none;font-size:.62rem;font-weight:900}.renderer-toggle a.active{background:var(--primary);color:#fff}
.gis-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:12px;margin-top:12px}.gis-canvas-card{overflow:hidden;border:1px solid var(--border);border-radius:22px;background:var(--panel-bg);box-shadow:var(--shadow)}.campus-image-map{position:relative;overflow:hidden;min-height:620px;background:var(--panel-alt)}.campus-image-map>img{width:100%;height:100%;min-height:620px;object-fit:contain;display:block}
.gis-marker{position:absolute;transform:translate(-50%,-50%);z-index:5;text-decoration:none}.gis-marker>span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#075fd8;color:#fff;border:2px solid #fff;box-shadow:0 6px 13px rgba(0,0,0,.35);font-size:.55rem;font-weight:900}.gis-marker.type-parking>span{background:#126ac4}.gis-marker.type-athletics>span{background:#08a776}.gis-marker.type-food>span{background:#e27800}.gis-marker.type-public_safety>span,.gis-marker.type-emergency_phone>span,.gis-marker.type-aed>span{background:#cf1535}.gis-marker.active>span{transform:scale(1.35);background:#8a3ffc;box-shadow:0 0 20px rgba(138,63,252,.75)}
.gis-you{position:absolute;z-index:8;transform:translate(-50%,-50%);width:13px;height:13px;border-radius:50%;background:#00ccff;border:2px solid #fff;box-shadow:0 0 15px #00ccff}.gis-you span{position:absolute;left:13px;top:-7px;padding:4px 6px;border-radius:7px;background:#043b88;color:#fff;font-size:.48rem}.route-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none}.route-overlay line{stroke:#00cfff;stroke-width:.65;stroke-dasharray:2 1;filter:drop-shadow(0 0 2px #fff)}
.gis-side-panel{display:grid;gap:10px;align-content:start}.gis-side-panel>.card{padding:14px}.destination-card h2{margin:8px 0}.destination-card p{font-size:.68rem;color:var(--page-muted)}.route-kpis{grid-template-columns:repeat(3,1fr);margin:10px 0}.future-3d-stage{position:relative;min-height:620px;overflow:hidden;perspective:900px;background:linear-gradient(180deg,#07182d,#020812)}.stage-grid{position:absolute;inset:45% -20% -40%;transform:rotateX(62deg);background-image:linear-gradient(rgba(0,151,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(0,151,255,.18) 1px,transparent 1px);background-size:40px 40px}.three-d-building{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%);width:48px;height:calc(24px + var(--h)*8px);transform:translate(-50%,-50%) rotateX(-8deg) rotateY(-15deg);background:linear-gradient(135deg,#0b6bd7,#00a3b5);border:1px solid #6edcff;box-shadow:12px 16px 22px rgba(0,0,0,.45);text-decoration:none}.three-d-building span{position:absolute;left:50%;top:-18px;transform:translateX(-50%);font-size:.5rem;color:#fff;font-weight:900}.three-d-label{position:absolute;left:18px;bottom:18px;padding:12px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(0,0,0,.65);color:#fff}.three-d-label strong,.three-d-label small{display:block}.three-d-label small{color:#aac1dc;margin-top:4px}.map-results{margin-top:12px;padding:14px}
.developer-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:12px;margin-top:12px}.developer-place-form,.developer-side>.card{padding:17px}.developer-side{display:grid;gap:12px;align-content:start}.developer-place-form h3{margin:8px 0 0;color:var(--heading)}.check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.check-grid label,.check-row{display:flex!important;align-items:center;gap:7px;padding:8px;border:1px solid var(--border);border-radius:10px;background:var(--panel-alt)}.check-grid input,.check-row input{width:auto}.ai-preview{padding:10px;border-radius:11px;background:var(--panel-alt)}.ai-preview strong,.ai-preview p{display:block;margin:0}.ai-preview p{font-size:.64rem;margin-top:5px;color:var(--page-muted)}.developer-records{margin-top:12px;padding:16px}.migration-results{padding:12px}.migration-row{display:flex;gap:9px;padding:9px;border-bottom:1px solid var(--border)}.migration-row:last-child{border:0}.migration-row>span{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#08a776;color:#fff}.migration-row.fail>span{background:#c71935}.migration-row strong,.migration-row small{display:block}.migration-row small{color:var(--page-muted);font-size:.58rem}.preference-form{padding:20px}
.campus-pulse-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:10px 0}.campus-pulse-grid div{text-align:center;padding:10px 5px;border:1px solid var(--border);border-radius:13px;background:var(--panel-bg);box-shadow:var(--shadow)}.campus-pulse-grid span,.campus-pulse-grid strong,.campus-pulse-grid small{display:block}.campus-pulse-grid span{color:var(--primary)}.campus-pulse-grid strong{font-size:.86rem;margin:3px 0}.campus-pulse-grid small{font-size:.5rem;color:var(--page-muted)}
@media(max-width:900px){.place-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rich-place-hero{grid-template-columns:1fr}.rich-place-photo{min-height:260px}.place-gallery-grid{grid-template-columns:repeat(2,1fr)}.gis-layout,.developer-layout{grid-template-columns:1fr}.gis-side-panel{grid-template-columns:1fr 1fr}.future-3d-stage,.campus-image-map,.campus-image-map>img{min-height:520px}}
@media(max-width:650px){.campus-intelligence-hero,.map-platform-head,.feed-hero,.developer-hero,.section-head{align-items:flex-start;padding:16px;flex-direction:column}.intelligence-search{grid-template-columns:auto minmax(0,1fr) auto}.intelligence-search select{grid-column:1/-1}.place-grid{grid-template-columns:1fr}.place-result-card{display:grid;grid-template-columns:115px minmax(0,1fr)}.place-result-media{height:100%;min-height:145px}.place-result-body{padding:10px}.place-detail-layout{grid-template-columns:1fr}.rich-place-copy{padding:18px}.rich-place-photo{min-height:220px}.place-gallery-grid{grid-template-columns:1fr 1fr}.place-gallery img{height:125px}.readiness-grid{grid-template-columns:1fr 1fr}.place-facts dl{grid-template-columns:105px 1fr}.virtual-queue-card{align-items:flex-start;flex-direction:column}.companion-screen{align-items:flex-start;padding:18px}.companion-orb{width:58px;height:58px;flex:0 0 auto}.capability-grid{grid-template-columns:1fr 1fr}.answer-results article{grid-template-columns:minmax(0,1fr) auto}.answer-results article>div:last-child{grid-column:1/-1}.feed-card{grid-template-columns:auto minmax(0,1fr)}.feed-card>.verification{grid-column:2}.gis-side-panel{grid-template-columns:1fr}.campus-image-map,.campus-image-map>img,.future-3d-stage{min-height:430px}.check-grid{grid-template-columns:1fr 1fr}.campus-pulse-grid{gap:4px}.campus-pulse-grid div{padding:8px 2px}}
@media(max-width:430px){.place-result-card{grid-template-columns:98px minmax(0,1fr)}.place-result-title{display:block}.place-result-title>.verification{margin-top:5px}.companion-search{grid-template-columns:auto minmax(0,1fr)}.companion-search .btn{grid-column:1/-1}.place-gallery-grid{grid-template-columns:1fr}.campus-image-map,.campus-image-map>img,.future-3d-stage{min-height:360px}.gis-marker>span{width:23px;height:23px;font-size:.45rem}.check-grid{grid-template-columns:1fr}.campus-pulse-grid strong{font-size:.72rem}.campus-pulse-grid small{font-size:.42rem}}
