:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#1d2b38;background:#f5f7f9}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,.button{cursor:pointer;border:1px solid #c9d3dc;border-radius:9px;background:#fff;color:#25384a;padding:10px 16px;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:42px}button:hover,.button:hover{background:#eef3f7}button:disabled{opacity:.55;cursor:wait}.primary{background:#146c7e;color:#fff;border-color:#146c7e}.primary:hover{background:#105666}.danger{color:#a33b39;border-color:#dcb8b5}input{display:block;width:100%;border:1px solid #bdcbd5;border-radius:8px;background:#fff;padding:11px 12px;margin-top:7px;color:#1d2b38}input:focus{outline:2px solid #67a7b4;outline-offset:1px}label{display:block;font-weight:600;margin:18px 0}small{display:block;color:#607383;font-weight:400;margin-top:6px}.check{display:flex;align-items:center;gap:10px}.check input{width:18px;height:18px;margin:0}.layout{display:grid;grid-template-columns:238px 1fr;min-height:100vh}.sidebar{background:#102f3c;color:#fff;padding:27px 19px}.brand{font-size:23px;font-weight:800;letter-spacing:.08em}.brand span{display:block;font-size:11px;font-weight:500;letter-spacing:.13em;color:#abd5db;margin-top:3px}.admin-tag{font-size:12px;color:#abd5db;text-transform:uppercase;letter-spacing:.1em;margin:39px 12px 15px}.sidebar nav a{display:block;color:#dce8ea;padding:12px 14px;text-decoration:none;border-radius:8px;margin:4px 0}.sidebar nav a:hover,.sidebar nav .selected{background:#285564;color:#fff}.main{min-width:0}.topbar{min-height:67px;border-bottom:1px solid #e1e8ed;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 35px;font-size:13px;color:#647584}.topbar span:last-child{color:#273e4a}main{max-width:1120px;margin:auto;padding:36px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px}.page-heading h1,h1{font-size:29px;line-height:1.2;margin:8px 0}.page-heading p{margin:5px 0}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.12em;color:#187184}.muted{color:#607383}.panel{background:#fff;border:1px solid #e1e8ed;border-radius:14px;padding:24px;box-shadow:0 3px 12px #1d3f5010}.narrow{max-width:620px}.panel h2{font-size:18px;margin:0 0 20px}.search{display:flex;gap:10px;margin-bottom:20px}.search input{margin:0;max-width:420px}.list-row{display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid #e5ebef;padding:19px 0}.list-row h2{font-size:17px;margin:0 0 5px}.list-row p{margin:0;font-size:13px}.row-actions{display:flex;align-items:center;gap:16px;white-space:nowrap}.badge{font-size:12px;font-weight:700;padding:6px 9px;border-radius:20px}.badge.active{background:#e2f5eb;color:#206743}.badge.inactive{background:#f7ecea;color:#9a4641}.empty{text-align:center;color:#607383;padding:40px 10px}.pagination{display:flex;gap:14px;align-items:center;justify-content:flex-end;padding-top:18px;border-top:1px solid #e5ebef}.cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}dl{display:grid;grid-template-columns:130px 1fr;gap:16px;margin:22px 0}dt{color:#657b88}dd{margin:0;font-weight:600;overflow-wrap:anywhere}.stack,.form-actions{display:flex;flex-wrap:wrap;gap:10px}.back{display:inline-block;color:#146c7e;text-decoration:none;margin-bottom:14px}.error{background:#fff0ee;color:#a33b39;padding:12px;border-radius:8px}.error[hidden],[hidden]{display:none!important}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(150deg,#e4f0f1,#f8fafb 55%)}.login-card{background:#fff;border:1px solid #dce7eb;border-radius:18px;box-shadow:0 15px 50px #1030401a;padding:38px;width:min(100%,430px)}.login-card .login-mark{font-size:28px;font-weight:800;color:#13586b;letter-spacing:.09em}.login-card h1{font-size:24px}.login-card .primary{width:100%;margin-top:9px}.login-card label{font-size:14px}.loading,.placeholder{text-align:center;padding:12vh 20px}.placeholder .brand{color:#146c7e}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:760px){.layout{display:block}.sidebar{padding:18px}.sidebar .brand span,.admin-tag{display:none}.sidebar nav{display:flex;gap:8px;margin-top:12px}.sidebar nav a{margin:0;padding:8px 12px}.topbar{padding:0 18px;min-height:54px}.topbar span:first-child{display:none}main{padding:22px 16px}.page-heading{align-items:flex-start}.page-heading h1{font-size:25px}.cards{grid-template-columns:1fr}.list-row{align-items:flex-start}.row-actions{flex-direction:column;align-items:flex-end;gap:8px}dl{grid-template-columns:105px 1fr}.panel{padding:18px}}@media(max-width:440px){.page-heading{flex-direction:column}.search{flex-direction:column}.search input{max-width:none}}
.app-sidebar .admin-tag{overflow-wrap:anywhere;line-height:1.5}.app-sidebar nav .nav-soon{display:flex;justify-content:space-between;gap:8px;align-items:center;color:#b7cbd0;padding:12px 14px;margin:4px 0;border-radius:8px}.app-sidebar nav .nav-soon small{color:#b7cbd0;margin:0;font-size:11px;white-space:nowrap}.account-actions{display:flex;align-items:center;gap:16px;min-width:0}.account-actions span{overflow-wrap:anywhere;text-align:right}.account-actions button{min-height:40px;padding:7px 12px}.app-topbar .topbar-institution{font-weight:700;color:#273e4a;overflow-wrap:anywhere}.module-note{margin-top:20px}.module-note p{margin-bottom:0}.settings-details{border-top:1px solid #e5ebef;padding-top:20px}.success{background:#e2f5eb;color:#206743;padding:12px;border-radius:8px}.app-layout a:focus-visible,.app-layout button:focus-visible{outline:3px solid #67a7b4;outline-offset:2px}.app-layout .sidebar nav a{min-height:46px;display:flex;align-items:center}.app-layout .primary{min-height:46px}
@media(max-width:1100px){.app-sidebar{padding:20px 14px}.app-layout{grid-template-columns:205px minmax(0,1fr)}.app-layout main{padding:28px}.app-topbar{padding:10px 24px}}
@media(max-width:760px){.app-layout{display:block}.app-sidebar{padding:15px 16px}.app-sidebar .brand span{display:block}.app-sidebar .admin-tag{display:block;margin:8px 0 0;text-transform:none;letter-spacing:0}.app-sidebar nav{display:flex;overflow-x:auto;gap:4px;padding:9px 0 2px;scrollbar-width:thin}.app-sidebar nav a,.app-sidebar nav .nav-soon{flex:0 0 auto;white-space:nowrap;min-height:44px;margin:0;padding:10px 12px}.app-sidebar nav .nav-soon small{display:none}.app-topbar{min-height:62px;padding:10px 16px;gap:12px}.app-topbar .topbar-institution{display:block;font-size:13px}.account-actions{gap:8px;font-size:12px}.account-actions span{max-width:45vw}.app-layout main{padding:22px 16px}.app-layout .panel{max-width:none}}
@media(max-width:440px){.app-topbar .topbar-institution{max-width:32vw}.account-actions span{max-width:36vw}.settings-details{grid-template-columns:105px minmax(0,1fr)}}
select{font:inherit;width:100%;padding:11px 12px;margin-top:7px;border:1px solid #bdcbd5;border-radius:8px;background:white;min-height:44px}.filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.filters label{flex:1;min-width:140px}.filters button{margin-bottom:18px}button,.button{min-height:44px}h1,h2,p{overflow-wrap:anywhere}.list-row>div{min-width:0}
.import-errors{max-height:240px;overflow:auto}.import-errors p{padding:7px;border-bottom:1px solid #eee}
.device-row{padding:20px 0;border-bottom:1px solid #e1e8ed}.device-row:first-child{padding-top:0}
.board-idle{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:radial-gradient(ellipse at top,#183b55,#080f1b);color:#e4efff;padding:32px;gap:12px}.board-idle .brand{color:#6be2d4}.pair-code{font-size:clamp(40px,8vw,100px);letter-spacing:.15em;color:#6be2d4}
.board-overlay{position:fixed;inset:0;display:grid;place-items:center;padding:3vh 3vw;background:#030912bd;backdrop-filter:blur(14px);z-index:50}.board-card{width:62vw;max-height:94vh;overflow:auto;text-align:center;background:linear-gradient(155deg,#fff,#eef5fa);border:1px solid #ffffffa6;border-radius:32px;padding:clamp(24px,3vw,64px);box-shadow:0 32px 120px #0008;color:#142c42}.board-meta{display:flex;justify-content:space-between;gap:16px;color:#5d6f81;font-size:clamp(14px,1.15vw,22px)}.bell-mark{width:70px;height:70px;display:grid;place-items:center;margin:24px auto 14px;background:#d9efed;border-radius:22px;color:#167e77;font-size:42px}.board-eyebrow{font-size:clamp(16px,1.3vw,26px);font-weight:800;letter-spacing:.16em;color:#147d79;margin:10px 0 22px}.board-card h1{font-size:clamp(36px,4.4vw,86px);font-weight:850;line-height:1.12;letter-spacing:-.03em;margin:12px 0 18px;text-transform:uppercase;overflow-wrap:anywhere}.board-class{display:inline-block;background:#e0e9f0;border-radius:14px;padding:10px 28px;font-size:clamp(26px,2.4vw,46px);font-weight:750}.board-message{font-size:clamp(22px,2vw,38px);line-height:1.4;color:#4b6175;margin:26px 0 34px}.board-card button{width:100%;min-height:90px;border:0;border-radius:18px;background:#116f69;color:#fff;font-size:clamp(20px,1.8vw,34px);font-weight:800;box-shadow:0 10px 24px #116f6933;touch-action:manipulation}.board-card button:hover{background:#095d58}.board-card button:focus-visible{outline:5px solid #65c9bd;outline-offset:5px}.board-card button.sent-success{background:#20834f;opacity:1}.board-card #board-feedback{min-height:24px;margin:16px 0 0;font-size:16px}.board-card button:disabled{cursor:default}@media(max-width:800px){.board-card{width:94vw;padding:22px;border-radius:24px}.board-card h1{font-size:clamp(30px,7vw,54px)}.board-card button{min-height:76px}.bell-mark{margin:16px auto}.board-message{margin:20px 0}}@media(max-height:800px){.board-card{padding:24px}.bell-mark{width:48px;height:48px;margin:14px auto 10px;font-size:30px}.board-eyebrow{margin-bottom:12px}.board-message{margin:18px 0 24px}.board-card button{min-height:76px}}
.audio-controls{margin-top:24px;max-width:520px}.audio-controls small{color:#b4c5db;line-height:1.5}
.timeline{list-style:none;padding:0}.timeline li{display:flex;gap:24px;border-left:3px solid #6fc7ba;padding:14px 20px}.timeline time{color:#607383;font-variant-numeric:tabular-nums}
