@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&family=Montserrat:wght@400;500;600&display=swap');
:root{--wine:#4e0b13;--wine-dark:#21080b;--ink:#211c1a;--cream:#f6f1e8;--paper:#fffdf9;--gold:#c89a43;--muted:#766d67;--line:#ded2c3;--green:#3e775b;--serif:Georgia,'Times New Roman',serif;--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}html{background:#140709}body{margin:0;background:radial-gradient(circle at 50% -10%,#6a1822 0,#21080b 46%,#100507 100%);color:var(--ink);font-family:var(--sans);min-height:100vh}.app-shell{position:relative;width:min(100%,470px);min-height:100svh;margin:auto;background:var(--cream);box-shadow:0 0 60px #0008;padding-bottom:88px;overflow:hidden}.topbar{height:82px;padding:env(safe-area-inset-top) 20px 0;display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,var(--wine-dark),#3c0b11);color:white;border-bottom:1px solid #d6ae5c55}.brand-mark{width:34px;height:38px;display:flex;align-items:center;justify-content:center;gap:2px}.brand-mark i{display:block;width:2px;background:var(--gold);border-radius:2px}.brand-mark i:nth-child(1),.brand-mark i:nth-child(5){height:18px}.brand-mark i:nth-child(2),.brand-mark i:nth-child(4){height:29px}.brand-mark i:nth-child(3){height:38px}.brand-copy{display:flex;flex-direction:column;line-height:1}.brand-copy strong{font:700 18px/1 var(--serif);letter-spacing:.12em}.brand-copy span{margin-top:5px;color:#dfc88f;font-size:11px;letter-spacing:.11em;text-transform:uppercase}.profile-button{margin-left:auto;width:40px;height:40px;border:1px solid #d6ae5c88;border-radius:50%;background:#f7efe0;color:var(--wine);font:700 16px var(--serif);cursor:pointer}.view{display:none;min-height:calc(100svh - 170px);padding:0 18px 32px}.view.active{display:block;animation:viewIn .35s ease}.welcome{margin:0 -18px;padding:28px 22px 62px;background:linear-gradient(160deg,#2a090d,#58121b);color:white;position:relative}.welcome:after{content:"";position:absolute;left:0;right:0;bottom:0;height:38px;background:var(--cream);clip-path:ellipse(64% 55% at 50% 100%)}.eyebrow{margin:0 0 7px;color:var(--gold);font-size:11px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.welcome h1,.page-heading h1{margin:0;font:400 clamp(30px,9vw,41px)/1.05 var(--serif);letter-spacing:-.025em}.welcome .date{margin:9px 0 0;color:#d9c7c1;font-size:14px}.notice{display:flex;gap:12px;align-items:flex-start;margin:-28px 4px 18px;padding:14px 15px;position:relative;z-index:2;background:#fffaf0;border:1px solid #e1c88f;border-radius:14px;box-shadow:0 12px 30px #44121b12}.notice>span{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:var(--gold);color:white;font-weight:900}.notice p{margin:0;font-size:13px;line-height:1.45}.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 35px #3b1c160c}.schedule-card{padding:19px 17px}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:13px}.section-heading h2,.assignment-card h2{margin:0;font:400 29px/1 var(--serif)}.text-button{border:0;background:none;color:var(--wine);font-weight:700;padding:8px 0;cursor:pointer}.timeline{position:relative}.timeline-item{display:grid;grid-template-columns:57px 13px 1fr;gap:7px;min-height:70px}.time{color:var(--wine);font:700 15px var(--serif);padding-top:2px}.rail{position:relative}.rail:before{content:"";position:absolute;top:8px;left:5px;width:1px;height:100%;background:#d7c2b6}.timeline-item:last-child .rail:before{display:none}.rail:after{content:"";position:absolute;top:5px;left:1px;width:9px;height:9px;border-radius:50%;background:var(--wine);box-shadow:0 0 0 3px #f1e3dc}.event{padding:0 0 16px}.event b{display:block;font-size:15px;line-height:1.25}.event span{display:block;margin-top:4px;color:var(--muted);font-size:12px}.event .tag{display:inline-block;margin-top:7px;padding:4px 7px;border-radius:99px;background:#efe1ca;color:#735219;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.quick-card{min-height:106px;padding:15px;text-align:left;border:1px solid #74202b;border-radius:16px;background:linear-gradient(145deg,#651521,var(--wine-dark));color:white;cursor:pointer;box-shadow:0 10px 22px #48101920}.quick-card .quick-icon{display:block;color:var(--gold);font:23px var(--serif);margin-bottom:10px}.quick-card b,.quick-card small{display:block}.quick-card b{font-size:14px}.quick-card small{margin-top:5px;color:#cfbfc0;font-size:11px}.page-heading{margin:0 -18px 18px;padding:27px 22px 26px;background:linear-gradient(145deg,var(--wine-dark),#451019);color:white}.page-heading p:last-child{margin:9px 0 0;color:#d6c2c2;font-size:13px}.day-tabs{display:flex;gap:7px;overflow:auto;padding-bottom:12px}.day-tabs button,.filter-row button{border:1px solid var(--line);background:var(--paper);color:var(--muted);border-radius:12px;padding:9px 13px;white-space:nowrap;font:600 12px var(--sans)}.day-tabs b{display:block;margin-top:4px;font:700 16px var(--serif)}.day-tabs .active,.filter-row .active{background:var(--wine);border-color:var(--wine);color:white}.filter-row{display:flex;gap:7px;overflow:auto;margin-bottom:13px}.room-list{display:grid;gap:11px}.room-card{padding:16px;background:var(--paper);border:1px solid var(--line);border-radius:16px}.room-card h3{margin:0 0 5px;font:400 23px var(--serif)}.room-card p:last-child{margin:0;color:var(--muted);font-size:12px}.slots{display:flex;gap:7px;margin-top:14px}.slots button{flex:1;padding:10px 3px;border:1px solid #cfbda9;border-radius:9px;background:#fff;color:var(--ink);cursor:pointer}.slots button.selected{background:var(--gold);border-color:var(--gold);color:#211405;font-weight:800}.primary-button{width:100%;margin-top:14px;padding:15px;border:0;border-radius:12px;background:linear-gradient(135deg,#d3ad57,#b9842e);color:#251504;font:700 15px var(--sans);cursor:pointer}.primary-button:disabled{opacity:.45;cursor:default}.resource-list{display:grid;gap:10px}.resource{display:grid;grid-template-columns:43px 1fr auto;gap:12px;align-items:center;padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:15px}.file-icon{display:grid;place-items:center;width:43px;height:50px;border-radius:7px;background:var(--wine);color:white;font:700 11px var(--sans)}.resource b,.resource small{display:block}.resource b{font:400 17px/1.2 var(--serif)}.resource small{margin-top:5px;color:var(--muted);font-size:11px}.resource .status{color:var(--green);font-size:11px;font-weight:700}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.admin-stats article{padding:14px 8px;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:14px}.admin-stats strong,.admin-stats span{display:block}.admin-stats strong{font:400 29px var(--serif);color:var(--wine)}.admin-stats span{color:var(--muted);font-size:10px}.assignment-card{padding:19px}.assignment-card label{display:block;margin-top:14px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.assignment-card select,.assignment-card input{width:100%;margin-top:6px;padding:12px;border:1px solid #cdbdab;border-radius:10px;background:#fff;color:var(--ink);font:500 14px var(--sans)}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.confirmation{padding:12px;border-radius:10px;background:#e7f1e8;color:#2d6142;font-size:12px;line-height:1.45}.bottom-nav{position:fixed;z-index:10;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,470px);padding:8px 12px calc(8px + env(safe-area-inset-bottom));display:flex;justify-content:space-around;background:#18080aee;border-top:1px solid #c99d4855;backdrop-filter:blur(14px)}.bottom-nav button{min-width:62px;padding:5px;border:0;background:none;color:#a99698;font:600 10px var(--sans);cursor:pointer}.bottom-nav span{display:block;margin-bottom:4px;color:inherit;font-size:20px}.bottom-nav button.active{color:#e6bf68}.bottom-nav button[data-nav="admin"]{display:none}dialog{width:min(420px,calc(100% - 28px));border:1px solid #b98c3c;border-radius:20px;padding:0;background:var(--cream);color:var(--ink);box-shadow:0 30px 90px #0009}dialog::backdrop{background:#110407b8;backdrop-filter:blur(4px)}dialog form{padding:20px}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.dialog-heading h2{margin:0;font:400 30px var(--serif)}.close-button{border:0;background:none;font-size:31px;color:var(--muted)}.profile-option{width:100%;display:flex;gap:12px;align-items:center;padding:12px;margin:7px 0;border:1px solid var(--line);border-radius:13px;background:var(--paper);text-align:left}.profile-option>span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#eadfcf;color:var(--wine);font:700 16px var(--serif)}.profile-option b,.profile-option small{display:block}.profile-option small{margin-top:4px;color:var(--muted)}.profile-option.active{border-color:var(--gold);box-shadow:0 0 0 2px #c99a4325}.toast{position:fixed;z-index:30;left:50%;bottom:94px;transform:translate(-50%,20px);width:min(390px,calc(100% - 36px));padding:13px 16px;border-radius:12px;background:#1d1715;color:white;font-size:13px;opacity:0;pointer-events:none;transition:.3s}.toast.show{opacity:1;transform:translate(-50%,0)}
.notice.urgent{background:#fff5f3;border-color:#c94b46;box-shadow:0 12px 30px #8d17171c}.notice.urgent>span{background:#b52828}.notice.urgent b{color:#8f1515}.quick-grid .quick-card:last-child:nth-child(odd){grid-column:1/-1}
.faculty-materials{display:grid;gap:10px}.faculty-resource{display:grid;grid-template-columns:46px 1fr 34px;gap:12px;align-items:center;padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:15px}.faculty-initial{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--wine);color:#f1cd7a;font:700 13px var(--serif)}.faculty-resource b,.faculty-resource span,.faculty-resource small{display:block}.faculty-resource b{font:400 18px/1.15 var(--serif)}.faculty-resource div>span{margin-top:4px;color:var(--ink);font-size:13px}.faculty-resource small{margin-top:5px;color:var(--muted);font-size:11px}.faculty-resource button{width:34px;height:34px;border:0;border-radius:50%;background:#efe1ca;color:var(--wine);font-size:24px;cursor:pointer}
.search-hint{display:block;margin-top:6px;color:var(--muted);font-size:11px;font-weight:500;letter-spacing:0;text-transform:none}.search-results{display:grid;gap:4px;margin-top:5px;padding:5px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 25px #2b11111c}.search-results:empty{display:none}.search-results button{padding:10px;border:0;border-radius:7px;background:#f7f0e7;text-align:left;color:var(--ink);font:600 14px var(--sans);cursor:pointer}.search-results small{padding:9px;color:var(--muted);font-weight:500;letter-spacing:0;text-transform:none}
.bottom-nav span{position:relative}.alert-dot{position:absolute;top:-2px;left:calc(50% + 6px);width:8px;height:8px;border-radius:50%;background:#ee3f3f;box-shadow:0 0 0 2px #18080a}
.mmi-logo{width:48px;height:42px;display:grid;place-items:center;border:1px solid #d6ae5c88;border-radius:8px;background:#170507;color:#edc96f;position:relative;overflow:hidden}.mmi-logo strong{font:700 15px/1 var(--serif);letter-spacing:.08em;position:relative;z-index:1}.mmi-logo span{position:absolute;left:6px;right:6px;bottom:7px;height:1px;background:#d3ad57;box-shadow:0 -5px 0 #d3ad5788}.brand-copy strong{font-size:15px;letter-spacing:.03em}.timeline-item.changed{margin:0 -8px 8px;padding:10px 8px 2px;border:1px solid #d85b56;border-radius:12px;background:#fff1ef}.timeline-item.changed .time,.timeline-item.changed .event b,.timeline-item.changed .event span{color:#a21f1f}.timeline-item.changed .rail:after{background:#d42f2f;box-shadow:0 0 0 3px #ffd7d3}.timeline-item.changed .tag{background:#b52828;color:#fff}
:root{--wine:#24211d;--wine-dark:#151412;--ink:#1b1916;--cream:#f5efe4;--paper:#fffaf1;--gold:#b78936;--muted:#716a60;--line:#d8cbbb;--serif:'Cormorant Garamond',Georgia,serif;--sans:Montserrat,Arial,sans-serif}
body{background:linear-gradient(145deg,#efe6d7 0%,#ddd0bd 56%,#c3b29c 100%)}.app-shell{background:linear-gradient(145deg,#f8f3e9 0%,#f1e9dc 65%,#e5d8c6 100%);box-shadow:0 0 60px #2d241a38}.topbar{background:rgba(255,250,241,.95);color:#1b1916;border-bottom:1px solid #b78936;box-shadow:0 8px 28px #2d241a12}.mmi-logo-image{display:block;width:96px;height:54px;object-fit:contain;object-position:left center;filter:brightness(0)}.brand-copy strong{color:#1b1916;font:600 15px/1 var(--serif);letter-spacing:.02em}.brand-copy span{color:#806126}.profile-button{background:#1b1916;color:#fffaf1;border-color:#b78936}.welcome{background:transparent;color:#1b1916}.welcome:after{background:#f5efe4}.welcome .date{color:#716a60}.welcome h1{color:#1b1916}.page-heading{background:linear-gradient(145deg,#fffaf1,#e9ddcc);color:#1b1916;border-bottom:1px solid #b78936}.page-heading p:last-child{color:#716a60}.quick-card{background:linear-gradient(145deg,#2b2823,#151412);border-color:#b78936;color:#fffaf1}.bottom-nav{background:#171512f2;border-top-color:#b78936}.bottom-nav button{color:#bdb4a6}.bottom-nav button.active{color:#e2b75f}.notice.urgent{background:#fff4f1}.timeline-item.changed{background:#fff1ef}.timeline-item.changed .time,.timeline-item.changed .event b,.timeline-item.changed .event span{color:#861017}.timeline-item.changed .tag{background:#861017}
.mmi-logo-image{filter:brightness(0)}
@keyframes viewIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(min-width:720px){body{padding:28px}.app-shell{min-height:calc(100vh - 56px);border-radius:28px}.bottom-nav{bottom:28px;border-radius:0 0 28px 28px}.view{min-height:calc(100vh - 226px)}}
dialog form{max-height:min(82svh,720px);overflow-y:auto}
.roster-list{display:grid;gap:9px}.roster-row{display:grid;grid-template-columns:38px 1fr auto;grid-template-areas:"initial name group" "initial name ensemble";column-gap:11px;align-items:center;padding:12px 13px;background:var(--paper);border:1px solid var(--line);border-radius:14px}.roster-initial{grid-area:initial;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--ink);color:var(--paper);font:700 16px var(--serif)}.roster-row b{grid-area:name;font:600 15px var(--sans)}.roster-row>span:nth-of-type(2){grid-area:group}.roster-row>span:nth-of-type(3){grid-area:ensemble}.roster-row>span:not(.roster-initial){color:var(--muted);font-size:12px;text-align:right}.bottom-nav button{min-width:54px}
.people-search{display:block;margin-bottom:12px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.people-search input{width:100%;margin-top:7px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font:500 15px var(--sans);text-transform:none;letter-spacing:0}.people-search input:focus{outline:2px solid #b7893666;border-color:var(--gold)}.roster-empty{padding:24px;text-align:center;color:var(--muted);font-size:14px}
.people-results{display:grid;gap:5px;margin:-6px 0 12px;padding:5px;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 25px #2b21151a}.people-results:empty{display:none}.people-results button{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px;border:0;border-radius:8px;background:#f2e9dc;color:var(--ink);font:700 14px var(--sans);text-align:left;cursor:pointer}.people-results button small{color:var(--muted);font-size:11px;font-weight:500}.people-results p{margin:0;padding:10px;color:var(--muted);font-size:13px}
