:root{font-family:Inter,Segoe UI,sans-serif;color:#27382f;background:#dfe4d6;font-synthesis:none;font-size:14px}*{box-sizing:border-box}html,body{margin:0;height:100%}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible{outline:3px solid #94b377;outline-offset:3px}svg{width:18px;height:18px;flex-shrink:0;stroke-width:1.7}a{color:inherit}#app-shell{height:100vh;height:100dvh}#app{background:#f7f8f4;height:100vh;height:100dvh;position:relative;overflow:hidden}@media(min-width:640px){#app-shell{display:flex;align-items:center;justify-content:center;padding:32px 16px;background:#dfe4d6;height:auto;min-height:100vh}#app{width:412px;height:860px;max-height:92vh;border-radius:44px;box-shadow:0 40px 90px -30px #12241566,0 0 0 10px #16241214;border:9px solid #1c2b21}}.brand,.app-brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:750;letter-spacing:-1px}.brand-dot{color:#a2b980}.gate{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:0 28px calc(24px + env(safe-area-inset-bottom));background:#fbfcf9}.gate-hero{position:relative;display:flex;align-items:center;justify-content:center;height:180px;margin-top:calc(8vh + env(safe-area-inset-top))}.gate-blob{position:absolute;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#dcecd3,#eef4e6 70%);filter:blur(0px)}.gate-logo{position:relative;width:84px;height:84px;border-radius:26px;background:#2e513d;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 18px 34px -14px #2e513d70}.gate-logo svg{width:38px;height:38px;stroke-width:1.6}.gate-copy{text-align:center;margin-top:22px}.gate-copy h1{font-size:32px;letter-spacing:-1.3px;margin:0 0 10px;font-weight:750;color:#22321f}.gate-copy p{font-size:13px;color:#8a9683;line-height:1.7;margin:0}.gate-actions{display:flex;flex-direction:column;gap:10px;margin-top:34px}.gate-hint{font-size:11px;color:#96a28d;text-align:center;margin:2px 0 0;line-height:1.6}.gate-footer{text-align:center;font-size:10px;letter-spacing:.6px;color:#a6b39d;margin-top:auto;padding-top:22px}.pill{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;border-radius:999px;padding:14px 18px;font-size:13px;font-weight:600;border:1px solid transparent}.pill:disabled{opacity:.55;cursor:wait}.pill-primary{background:#7bc47f;color:#173820;box-shadow:0 10px 22px -12px #4c9c5570}.pill-outline{background:#fff;color:#3c4a37;border-color:#e3e9db}.pill-outline svg{width:16px;height:16px}.pill-ghost{background:none;color:#7c8a74;font-weight:500;padding:8px}.pill-dark{background:#1f3a2c;color:#fff;margin-top:4px}.gate .admin-login{margin-top:4px;color:#7c8a74;font-size:12px;text-align:center}.gate .admin-login summary{cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;list-style:none;color:#6d8a63;font-weight:600}.gate .admin-login summary::-webkit-details-marker{display:none}.gate .admin-login summary svg{width:14px;height:14px}.gate .admin-login form{display:flex;flex-direction:column;gap:10px;margin-top:6px;text-align:left}.gate .field{position:relative;display:flex;align-items:center}.gate .field svg{position:absolute;left:16px;width:15px;height:15px;color:#9aab90;pointer-events:none}.gate .field input{width:100%;border:1px solid #e3e9db;border-radius:999px;padding:13px 16px 13px 42px;background:#f7f9f4;color:#2e3a2a;outline-color:#7bc47f}.gate .field input::placeholder{color:#a3b199}.gate .notice.error{background:#fff0ed;border-color:#efc9c2;color:#a75144;border-radius:14px}.screen{display:flex;flex-direction:column;height:100%}.app-header{flex:0 0 auto;background:#fff;border-bottom:1px solid #e5e8e1;padding:calc(16px + env(safe-area-inset-top)) 20px 14px}.app-header-row{display:flex;align-items:center;justify-content:space-between}.app-brand{font-size:20px}.app-brand svg{width:20px;height:20px;background:#264f3a;padding:5px;border-radius:8px;color:#fff;box-sizing:content-box}.app-header-sub{font-size:10px;letter-spacing:1.1px;color:#8d9986;margin-top:8px;text-transform:uppercase}.app-header-sub b{padding:0 6px;font-weight:400;color:#c2cabb}.icon-btn{border:0;background:#f0f2ea;width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;color:#4a5c47}.icon-btn svg{width:16px;height:16px}.app-content{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:18px 18px calc(18px + env(safe-area-inset-bottom))}.tab-bar{flex:0 0 auto;display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-top:1px solid #e5e8e1;padding:8px 6px calc(8px + env(safe-area-inset-bottom))}.tab-bar button{display:flex;flex-direction:column;align-items:center;gap:4px;border:0;background:none;padding:6px 4px;border-radius:10px;color:#95a08c;font-size:10px;font-weight:600}.tab-bar button svg{width:20px;height:20px;stroke-width:1.6}.tab-bar button.active{color:#2c5038}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #dfe5d9;background:#fff;border-radius:9px;padding:11px 15px;font-weight:550;letter-spacing:0;font-size:12px;text-decoration:none;white-space:nowrap}.button.primary{background:#2e513d;color:#fff;border-color:#2e513d}.button:hover{filter:brightness(.97)}.button.subtle{background:none;border:0;font-size:11px;color:#677467}.button.small{padding:7px 10px;font-size:11px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:650;color:#7e8a73}.page-heading{margin-bottom:6px}.title-line{display:flex;align-items:center;justify-content:space-between;gap:15px}h1{font-size:26px;letter-spacing:-1.1px;font-weight:650;margin:10px 0}h2{font-size:18px;letter-spacing:-.4px;font-weight:630}h3{font-weight:600}.page-heading p{color:#8a9285;margin:0;font-size:12px;line-height:1.6}.notice{border:1px solid #e6d9b9;background:#faf6e8;padding:12px 14px;border-radius:9px;color:#96793b;font-size:12px;margin:0 0 16px;line-height:1.6}.notice.error{color:#a75144;background:#fff0ed;border-color:#efc9c2}.notice button{border:0;background:transparent;text-decoration:underline;padding:0}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:18px 0}.stats article{padding:15px;background:#fff;border:1px solid #e4e8de;border-radius:12px}.stats article>span{font-size:9px;font-weight:650;letter-spacing:.6px;color:#838e7c;display:flex;align-items:center;gap:6px}.stats article>span svg{width:13px;height:13px}.stats article>div{font-size:26px;font-weight:650;margin-top:9px}.stats .stat-highlight{background:#edf1e5;border-color:#e2e9d8}.next-card{border-radius:14px;background:#edf0e4;padding:22px 20px;position:relative;overflow:hidden;margin-bottom:18px}.next-card .eyebrow{display:flex;align-items:center;gap:7px;font-size:9px}.next-card .eyebrow svg{width:13px}.next-card h2{font-size:19px;margin:14px 0 18px}.next-date{font-size:11px;color:#718257;font-weight:650;display:inline-block;border:1px solid #d7dfc8;padding:5px 9px;border-radius:5px}.next-card h3{font-size:16px;line-height:1.4;margin:12px 0 6px}.next-card p{font-size:11px;color:#899674;line-height:1.6;margin:0 0 16px}.next-card .button{width:100%;background:#fff9;border-color:#dae2ce;font-size:11px;justify-content:space-between}.toolbar{display:flex;align-items:center;gap:7px;margin:18px 0 10px;flex-wrap:wrap}.month-select{display:flex;align-items:center;gap:12px;margin-right:auto}.month-select strong{text-transform:capitalize;font-size:12px;font-weight:550}.month-select button{background:none;border:1px solid #e0e5da;border-radius:6px;padding:5px;display:flex}.month-select svg{width:13px;height:13px}.filters{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:14px;margin-bottom:8px;border-bottom:1px solid #e5e9df}.filters select{min-width:0;flex:1;font-size:11px;color:#788570;border:1px solid #e1e6db;border-radius:7px;background:#fff;padding:9px 8px}.search{display:flex;align-items:center;flex-basis:100%;gap:8px;background:#fff;border:1px solid #e1e6db;border-radius:7px;padding:0 10px;color:#8d9984}.search svg{width:14px}.search input{border:0;padding:9px 0;background:none;min-width:0;width:100%;font-size:12px;outline:none}.day-heading{display:flex;align-items:center;gap:10px;margin:20px 0 10px;font-size:10px;color:#98a18e}.day-heading strong{font-size:12px;color:#596b50}.day-heading hr{flex:1;border:0;border-top:1px solid #e6eadd;margin:0 0 0 6px}.day-heading b{background:#e5edde;color:#608051;font-weight:550;border-radius:3px;padding:2px 5px}.event-card{display:flex;text-align:left;align-items:center;width:100%;gap:12px;border:1px solid #e1e6dd;border-radius:11px;background:#fff;padding:15px;margin-bottom:9px;transition:box-shadow .15s,border .15s}.event-card:active{border-color:#b9c9aa}.event-symbol{display:inline-flex;align-items:center;justify-content:center;width:38px;height:41px;flex-shrink:0;border-radius:9px;font-weight:650;font-size:11px;color:var(--subject);background:color-mix(in srgb,var(--subject) 12%,white)}.event-main{flex:1;min-width:0}.event-top{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.badge{font-size:9px;padding:3px 6px;border-radius:4px;background:#f0f2eb;color:#829071}.badge.exam{background:#f7eee4;color:#a37e43}.badge.danger{background:#fbe9e7;color:#aa4848}.confirm{font-size:9px;color:#a07c3f}.event-card h3{font-size:12.5px;margin:7px 0 6px;letter-spacing:-.1px}.event-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:10px;color:#929c88;line-height:1.5}.event-meta span{display:flex;gap:3px;align-items:center}.event-meta svg{width:11px;height:11px}.event-time{position:relative;text-align:right;color:#94a087;font-size:10px;min-width:74px;padding-right:12px;flex-shrink:0}.event-time strong{display:flex;justify-content:flex-end;gap:4px;color:#a2753e;font-weight:550;font-size:10.5px;align-items:center}.event-time strong svg{width:11px}.event-time small{display:block;margin-top:4px;font-size:8.5px}.event-time>svg{width:12px;position:absolute;right:-4px;top:50%;transform:translateY(-50%);color:#b5c0a9}.cancelled{opacity:.6}.cancelled h3{text-decoration:line-through}.empty{text-align:center;padding:50px 16px;color:#84967a}.empty>svg{width:30px;height:30px}.empty h3{font-size:15px}.empty p{font-size:12px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin-top:14px;border-top:1px solid #e0e5d9;border-left:1px solid #e0e5d9;border-radius:8px;overflow:hidden}.weekday{text-align:center;padding:7px 2px;font-size:8.5px;color:#86967c;border-bottom:1px solid #e0e5d9;border-right:1px solid #e0e5d9}.calendar-cell{min-height:64px;padding:4px 2px;background:#fff;border-bottom:1px solid #e0e5d9;border-right:1px solid #e0e5d9}.calendar-cell.muted{background:#f0f3ec}.calendar-cell b{font-size:9px;display:inline-block;padding:3px}.calendar-cell.today>b{background:#375b3e;color:#fff;border-radius:50%}.calendar-cell button{display:block;text-align:left;width:100%;border:0;border-left:2px solid var(--subject);background:color-mix(in srgb,var(--subject) 10%,white);color:var(--subject);font-size:7.5px;line-height:1.3;border-radius:3px;padding:3px;margin:3px 0;overflow-wrap:anywhere}.subject-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px}.subject-card{text-align:left;background:#fff;border:1px solid #e0e7d9;padding:16px;border-radius:11px}.subject-card h3{font-size:13px;min-height:36px;line-height:1.4;margin:14px 0 4px}.subject-card p{font-size:10px;color:#95a08a}.subject-card footer{display:flex;justify-content:space-between;border-top:1px solid #edf0e8;padding-top:10px;margin-top:12px;color:#859575;font-size:10px}.subject-card footer b{font-weight:600}.info-card{margin-top:18px;padding:16px;color:#8a9780;font-size:11px;line-height:1.8;background:#fff;border:1px solid #e6ebe0;border-radius:12px}.info-card h3{display:flex;align-items:center;gap:7px;font-size:12px;color:#647859;margin:0 0 10px}.info-card h3 svg{width:14px}.info-card strong{font-weight:500;color:#75876a}.info-card p{margin:0 0 6px}#members{width:100%;margin-top:14px}.page-footer{display:flex;justify-content:space-between;margin-top:26px;padding-top:16px;border-top:1px solid #e4e9dd;color:#a1ab95;font-size:9.5px}.app-panel{height:100%;background:#f7f8f4;display:flex;flex-direction:column}.panel-header{flex:0 0 auto;height:70px;background:#fff;border-bottom:1px solid #e4e9e1;padding:calc(0px + env(safe-area-inset-top)) 20px 0;display:flex;align-items:center;justify-content:space-between}.panel-header .brand{font-size:20px}.panel-header .brand>svg{width:20px;height:20px;background:#264f3a;padding:5px;border-radius:8px;color:#fff;box-sizing:content-box}.panel-main{flex:1 1 auto;overflow-y:auto;margin:0 auto;padding:24px 20px calc(40px + env(safe-area-inset-bottom));width:100%}.panel-main h1{margin-top:0;font-size:22px}.muted-text{font-size:12px;color:#8c9984;line-height:1.6}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:18px 0;border-top:1px solid #edf0e8;border-bottom:1px solid #edf0e8;margin:18px 0}.detail-grid small{display:block;font-size:9px;letter-spacing:1px;color:#94a08c;margin-bottom:6px}.detail-grid strong{font-size:13px;font-weight:550}.description{line-height:1.8;font-size:13px;white-space:pre-wrap}.source{font-size:10px;color:#9ca690;line-height:1.6;margin-top:20px}.resource-link{display:flex;gap:8px;align-items:center;color:#557b48;font-size:12px;margin:10px 0}form>label,.form-grid>label{display:flex;flex-direction:column;gap:7px;font-size:11px;color:#75826d;margin:14px 0}form input:not([type=checkbox]),form select,form textarea{border:1px solid #dce3d5;border-radius:7px;padding:10px;background:#fcfdfb;color:#415538;width:100%;outline-color:#96b383}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}fieldset{border:1px solid #e0e6d9;border-radius:8px;margin:12px 0;padding:12px}legend{font-size:11px;color:#75826d}.checkbox-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;font-size:11px}.checkbox-grid label{display:flex;align-items:center;gap:6px}.checkbox{flex-direction:row!important;align-items:center}.form-error{font-size:12px;color:#b45749;line-height:1.6}.student-list{display:flex;flex-direction:column;gap:8px}.student-row{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;border:1px solid #e1e6dd;border-radius:10px;padding:12px 14px;background:#fff}.student-row span{font-size:11px;color:#8c9984}#toast{position:fixed;bottom:calc(25px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);background:#2e4b35;color:#fff;border-radius:9px;padding:13px 22px;font-size:12px;z-index:99;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90vw}#toast.visible{opacity:1}:root{font-family:Georgia,Times New Roman,serif;color:#24231f;background:#d7d2c7}body{background:#d7d2c7}#app,#app-shell{background:#f4f0e8}#app:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:10;opacity:.46;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E");mix-blend-mode:multiply}@media(min-width:640px){#app-shell{background:radial-gradient(circle at 20% 15%,#ece7dd,transparent 28%),#d2ccc0}#app{border:8px solid #302e29;border-radius:38px;box-shadow:0 34px 80px #45403845,0 0 0 1px #f8f5ee}}.gate{background:#f4f0e8;padding-left:30px;padding-right:30px}.gate-hero{height:210px;margin-top:calc(4vh + env(safe-area-inset-top));overflow:hidden}.paper-sun{position:absolute;width:220px;height:220px;border-radius:50%;background:#ded7c9;box-shadow:inset 0 0 0 1px #c9c0af}.study-illustration{position:relative;width:260px;height:180px;color:#292720;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 12px 0 #d2cabd)}.gate-logo{display:none}.gate-copy{margin-top:14px}.gate-copy h1{font-size:42px;letter-spacing:-2.2px;color:#25231e;font-weight:650}.gate-copy p{color:#777168;font-size:13px}.brand-dot{color:#24231f}.gate-actions{margin-top:32px;gap:12px}.gate-hint,.gate-footer{color:#777168}.pill{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;border-radius:14px;padding:15px 18px;font-family:Inter,Segoe UI,sans-serif;font-size:13px;font-weight:600;border:1px solid transparent;box-shadow:4px 5px #d0c9bc}.pill-primary,.pill-dark{background:#282620;color:#f8f4eb;border-color:#282620}.pill-outline{background:#fbf8f2;color:#282620;border-color:#bdb4a5}.pill-ghost{box-shadow:none;color:#575149}.gate .admin-login{background:#ebe5da;border:1px solid #d1c8ba;border-radius:14px;padding:3px 8px}.gate .admin-login summary{color:#403c35}.gate .field input{background:#f8f4ed;border-color:#cfc5b5;border-radius:10px;color:#282620}.gate .field svg{color:#6e675d}.app-header{background:#f8f4ec;border-bottom-color:#d6cdbd}.app-brand{font-family:Georgia,Times New Roman,serif;font-size:23px;color:#24221e}.app-brand svg,.panel-header .brand>svg{background:#282620;border-radius:50%;padding:5px}.app-header-sub{color:#746d63}.icon-btn{background:#e7e0d4;color:#302d27;border-radius:50%}.app-content{background:#f4f0e8;padding:20px 18px}.tab-bar{background:#f8f4ec;border-top-color:#d6cdbd;padding-top:9px}.tab-bar button{font-family:Inter,Segoe UI,sans-serif;color:#857d71}.tab-bar button.active{color:#24221e}.tab-bar button.active svg{fill:#24221e;color:#f7f2e8;stroke:#f7f2e8;background:#24221e;border-radius:50%;padding:4px;box-sizing:content-box;margin-top:-13px;box-shadow:0 5px #cfc6b8}h1,h2,h3{font-family:Georgia,Times New Roman,serif;color:#27251f}.eyebrow{color:#746c61;letter-spacing:1.5px}.page-heading p,.muted-text{color:#746f66}.stats article,.event-card,.subject-card,.info-card{background:#fbf8f1;border-color:#d8cfc0;border-radius:16px;box-shadow:3px 4px #ddd5c8}.stats article>span,.event-meta,.source{color:#746d63}.stats article>div{color:#28251f}.stats .stat-highlight,.next-card{background:#e5ded1;border-color:#cbc1b1}.next-card{border-radius:22px;box-shadow:5px 6px #cec4b6}.next-card:after{content:"";position:absolute;width:160px;height:160px;border:1px solid #b5aa9a;border-radius:50%;right:-78px;bottom:-82px}.next-card>*{position:relative;z-index:1}.next-card h2{font-size:25px}.next-date{color:#514b42;border-color:#b9ad9b}.next-card p{color:#716a60}.next-card .button,.button{background:#fbf8f1;border-color:#cfc5b5;border-radius:11px;color:#2c2923}.button.primary{background:#282620;color:#f8f4eb;border-color:#282620}.filters{border-bottom-color:#d8cfc0}.filters select,.search{background:#fbf8f1;border-color:#d4cabb;color:#5a544b;border-radius:10px}.search{box-shadow:2px 3px #e1d9cc}.event-card{padding:15px 14px}.event-card:active{transform:translate(2px,2px);box-shadow:1px 2px #ddd5c8}.event-symbol{background:#e7e0d4;color:#2f2c26;border-radius:12px}.badge{background:#e8e1d5;color:#5c554b}.badge.exam{background:#ded5c6;color:#62564a}.day-heading strong{color:#474238}.day-heading{color:#7b7469}.day-heading b{background:#ddd5c7;color:#474238}.calendar{border-color:#d7cebf}.weekday,.calendar-cell{border-color:#d7cebf;background:#fbf8f1}.calendar-cell.muted{background:#ece6db}.calendar-cell.today>b{background:#2a2823}.calendar-cell button{background:#e9e2d7;color:#454038}.info-card h3,.info-card strong{color:#514b42}.panel-header,.app-panel{background:#f4f0e8;border-color:#d6cdbd}.panel-main{background:#f4f0e8}.detail-grid{border-color:#d8cfc0}.detail-grid small{color:#756d62}.gate .notice.error,.notice.error{background:#f3e4dd;border-color:#d5b6aa;color:#8b4739}.gate .admin-login{margin-top:8px}.gate .login-divider{display:flex;align-items:center;gap:10px;color:#60594f;font:600 11px Inter,Segoe UI,sans-serif;letter-spacing:.2px;margin:5px 2px 10px}.gate .login-divider:after{content:"";height:1px;flex:1;background:#cfc5b5}.gate .login-divider svg{width:14px;height:14px}.gate .admin-login form{display:flex;flex-direction:column;gap:10px;text-align:left}:root{color:#111;background:#d9d9d7}body{background:#d9d9d7}#app,#app-shell{background:#f6f6f3}#app:before{opacity:.88;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='5' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='.42'/%3E%3C/svg%3E");mix-blend-mode:multiply}@media(min-width:640px){#app-shell{background:#d5d5d2}#app{border:0;border-radius:34px;box-shadow:0 24px 65px #1111112e,0 2px 8px #11111112}}.gate,.app-content,.app-panel,.panel-main{background:#f6f6f3}.gate{padding-left:28px;padding-right:28px}.gate-hero{height:188px;margin-top:calc(5vh + env(safe-area-inset-top))}.paper-sun{display:none}.study-illustration{filter:none;color:#111;width:240px;height:170px;stroke-width:1.75}.gate-copy{margin-top:2px}.gate-copy h1{color:#101010;font-size:40px;font-weight:700;letter-spacing:-2px}.gate-copy p,.gate-hint,.gate-footer{color:#565656}.gate-actions{margin-top:26px;gap:12px}.pill{border:0;border-radius:16px;background:#fff;color:#111;box-shadow:0 8px 22px #11111114;padding:15px 18px}.pill-outline{border:0;background:#fff;color:#111}.pill-dark,.pill-primary{background:#111;color:#fff;box-shadow:0 10px 24px #1111112c}.pill-ghost{background:transparent;box-shadow:none}.gate .admin-login{padding:0;background:transparent;border:0}.gate .login-divider{color:#303030}.gate .login-divider:after{background:#bcbcb8}.gate .field input{background:#fff;color:#111;border:0;border-radius:14px;box-shadow:0 5px 16px #11111112}.gate .field svg{color:#333}.app-header,.panel-header{background:#f6f6f3;border:0}.app-brand,.app-header-sub{color:#111}.app-brand svg,.panel-header .brand>svg{background:#111;color:#fff;border-radius:11px}.icon-btn{background:#fff;color:#111;border-radius:14px;box-shadow:0 4px 13px #11111112}.app-content{padding:20px 18px}.tab-bar{background:#fff;border:0;box-shadow:0 -8px 24px #1111110b}.tab-bar button{color:#666}.tab-bar button.active{color:#111}.tab-bar button.active svg{background:#111;color:#fff;stroke:#fff;box-shadow:0 5px 13px #11111125}h1,h2,h3,.page-heading p,.muted-text,.eyebrow,.stats article>span,.event-meta,.source{color:#111}.eyebrow{opacity:.58}.page-heading p,.muted-text,.event-meta,.source{opacity:.63}.stats{gap:12px}.stats article,.stats .stat-highlight,.next-card,.event-card,.subject-card,.info-card{background:#fff;border:0;box-shadow:0 7px 21px #11111112;border-radius:18px}.stats article>div{color:#111}.next-card{background:#111;color:#fff;box-shadow:0 12px 30px #11111124}.next-card:after{display:none}.next-card .eyebrow,.next-card h2,.next-card p{color:#fff}.next-card .eyebrow{opacity:.65}.next-card p{opacity:.72}.next-date{color:#fff;border:0;background:#ffffff20;border-radius:9px}.next-card .button{background:#fff;color:#111;border:0;box-shadow:none;border-radius:12px}.button,.button.primary{border:0;border-radius:13px;background:#fff;color:#111;box-shadow:0 5px 16px #11111112}.button.primary{background:#111;color:#fff}.filters{border:0}.filters select,.search{background:#fff;border:0;color:#111;border-radius:13px;box-shadow:0 5px 16px #11111110}.event-card{padding:15px;box-shadow:0 5px 17px #11111110}.event-card:active{transform:scale(.985);box-shadow:0 2px 7px #11111112}.event-symbol{background:#eee;color:#111;border-radius:13px}.badge,.badge.exam,.badge.danger,.confirm{background:#eee;color:#111;border:0}.day-heading,.day-heading strong,.day-heading b{color:#111}.day-heading b{background:#e7e7e4;border-radius:7px}.day-heading hr{border-color:#d8d8d4}.calendar{border:0;border-radius:18px;overflow:hidden;box-shadow:0 6px 19px #11111110}.weekday,.calendar-cell{background:#fff;border-color:#e5e5e1}.calendar-cell.muted{background:#eee}.calendar-cell.today>b{background:#111}.calendar-cell button{background:#eee;color:#111;border-left-color:#111}.info-card h3,.info-card strong{color:#111}.notice{background:#fff;border:0;color:#111;box-shadow:0 5px 16px #11111110}.gate .notice.error,.notice.error{background:#fff;color:#111}.detail-grid{border-color:#dededb}:root,button,input,select,textarea,.pill,.tab-bar button,.gate .login-divider{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}h1,h2,h3,.app-brand,.gate-copy h1{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.header-actions{display:flex;gap:8px}#app:before{opacity:.52;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.45' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)' opacity='.22'/%3E%3C/svg%3E");mix-blend-mode:multiply}.app-panel{height:auto;min-height:100%;display:block;overflow:visible}.panel-header{height:auto;min-height:56px;position:static;display:flex;justify-content:flex-start;gap:12px;padding:14px 18px;background:#f6f6f3}.panel-main{overflow:visible;padding:16px 20px calc(42px + env(safe-area-inset-bottom))}.panel-back{width:30px;height:30px;padding:0;border:0;background:transparent;color:#111;display:grid;place-items:center}.panel-back svg{width:21px;height:21px}.panel-title{font-size:14px;font-weight:650;line-height:30px;color:#111}.app-loader{position:absolute;inset:0;z-index:200;display:grid;place-content:center;gap:18px;background:#f6f6f3;color:#111;text-align:center}.app-loader p{margin:0;font-size:13px;font-weight:500;animation:loader-copy 1.15s ease-in-out infinite}.ios-spinner{width:32px;height:32px;position:relative;margin:auto}.ios-spinner i{position:absolute;left:14px;top:1px;width:4px;height:9px;border-radius:8px;background:#111;transform-origin:2px 15px;animation:ios-spin 1s linear infinite}.ios-spinner i:nth-child(1){transform:rotate(0);animation-delay:-.916s}.ios-spinner i:nth-child(2){transform:rotate(30deg);animation-delay:-.833s}.ios-spinner i:nth-child(3){transform:rotate(60deg);animation-delay:-.75s}.ios-spinner i:nth-child(4){transform:rotate(90deg);animation-delay:-.666s}.ios-spinner i:nth-child(5){transform:rotate(120deg);animation-delay:-.583s}.ios-spinner i:nth-child(6){transform:rotate(150deg);animation-delay:-.5s}.ios-spinner i:nth-child(7){transform:rotate(180deg);animation-delay:-.416s}.ios-spinner i:nth-child(8){transform:rotate(210deg);animation-delay:-.333s}.ios-spinner i:nth-child(9){transform:rotate(240deg);animation-delay:-.25s}.ios-spinner i:nth-child(10){transform:rotate(270deg);animation-delay:-.166s}.ios-spinner i:nth-child(11){transform:rotate(300deg);animation-delay:-83ms}.ios-spinner i:nth-child(12){transform:rotate(330deg);animation-delay:0s}@keyframes ios-spin{0%{opacity:1}to{opacity:.15}}@keyframes loader-copy{0%,to{opacity:.35;transform:translateY(2px)}50%{opacity:1;transform:translateY(0)}}
