:root{--purple:#654fc4;--ink:#18213a;--muted:#748096;--line:#e5e8f0;--bg:#f6f7fb}*{box-sizing:border-box}body{margin:0;font:16px system-ui,sans-serif;color:var(--ink);background:var(--bg)}button,input,select{font:inherit}.primary{border:0;background:var(--purple);color:#fff;padding:12px 18px;border-radius:11px;font-weight:750;cursor:pointer;text-decoration:none;display:inline-block}.login,.install{min-height:100vh;display:grid;place-items:center;padding:20px}.login form,.install form{width:min(440px,100%);background:#fff;padding:30px;border-radius:20px;box-shadow:0 18px 50px #27325218}.logo{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,#7f68d9,#563db4);color:#fff;display:grid;place-items:center;font-weight:850}.login label,.install label,dialog label{display:block;font-weight:700;font-size:13px;margin:14px 0}.login input,.install input,dialog input,dialog select{display:block;width:100%;padding:12px;border:1px solid var(--line);border-radius:9px;margin-top:6px}.login .primary,.install .primary,dialog .primary{width:100%;margin-top:10px}.error,.success,.notice{padding:12px;border-radius:10px;margin:12px 0}.error,.bad{background:#ffeded;color:#9b332d}.success,.notice{background:#e7f7ef;color:#227757}#app{min-height:100vh;display:flex}aside{position:fixed;inset:0 auto 0 0;width:245px;background:#fff;border-right:1px solid var(--line);padding:26px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;margin-bottom:30px}.brand small,.account small{display:block;color:var(--muted)}nav{display:grid;gap:7px}nav button{border:0;background:transparent;padding:12px;border-radius:10px;text-align:left;font-weight:700;color:#68728a;cursor:pointer}nav button.active{background:#eeeafd;color:var(--purple)}nav button span{margin-left:8px}.account{margin-top:auto;border-top:1px solid var(--line);padding-top:16px}.account a{display:block;margin-top:7px;color:var(--purple)}.workspace{margin-left:245px;width:calc(100% - 245px);padding:36px 42px}.workspace>header{display:flex;justify-content:space-between;align-items:center}.workspace h1{margin:5px 0}.workspace header p{margin:0;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:25px 0}.stats div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px}.stats b,.stats small{display:block}.stats b{font-size:23px}.stats small{color:var(--muted)}.new-service{margin-bottom:15px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.card>header{display:flex;justify-content:space-between;padding:17px;background:linear-gradient(100deg,#f0ecff,#fff)}.card h2{margin:5px 0}.pill{background:#e4f6ed;color:#237959;border-radius:20px;padding:5px 8px;height:min-content;font-size:11px}.room,.monitors{padding:12px 16px;border-top:1px solid var(--line)}.room p,.monitors p{font-size:12px;color:var(--muted);margin:5px 0}.card footer{display:flex;gap:7px;padding:12px}.card footer button{flex:1;border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px}.member-grid,.room-grid,.integration-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.member,.room-grid article,.integration-grid article,.reminders article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}.member{display:flex;gap:10px;align-items:center}.member>span{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--purple);color:#fff;font-weight:800}.member small{display:block;color:var(--muted)}.room-grid article small{color:var(--purple);font-weight:800}.room-grid article p{color:var(--muted)}.rulebar{display:flex;gap:12px;margin-bottom:14px}.rulebar div{flex:1;background:#fff;border:1px solid var(--line);padding:15px;border-radius:12px}.rulebar b,.rulebar span{display:block}.rulebar span{color:var(--muted)}.reminders{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.reminders p,.integration-grid p{color:var(--muted);line-height:1.55}.lesson-list{display:grid;gap:10px}.lesson-list article{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);padding:12px;border-radius:13px}.lesson-list img,.photo{width:58px;height:58px;border-radius:10px;object-fit:cover;background:#eeeafd;display:grid;place-items:center}.lesson-list small{display:block;color:var(--muted)}.upload{margin-left:auto;border:1px solid var(--line);padding:9px;border-radius:8px;font-weight:700}.upload input{display:none}dialog{border:0;border-radius:18px;padding:25px;width:min(440px,90%)}dialog::backdrop{background:#17203888}.close{float:right;border:0;background:#eee;border-radius:50%;font-size:22px}.loading{padding:60px;text-align:center}.install hr{border:0;border-top:1px solid var(--line)}
@media(max-width:1050px){.cards,.member-grid,.room-grid,.integration-grid{grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr}}@media(max-width:700px){aside{inset:auto 0 0;width:auto;height:70px;padding:8px;z-index:5}.brand,.account{display:none}nav{display:flex;justify-content:space-around}nav button{font-size:21px;padding:8px}nav button span{display:none}.workspace{margin:0;width:100%;padding:23px 15px 92px}.workspace>header{align-items:flex-start}.workspace>header p{display:none}.cards,.member-grid,.room-grid,.integration-grid,.reminders{grid-template-columns:1fr}.rulebar{flex-direction:column}.stats{grid-template-columns:1fr 1fr}.card footer{position:sticky;bottom:0}.lesson-list article{align-items:flex-start}.upload{margin-left:0}}
.access-list{display:grid;gap:10px;margin-top:16px}.access-list article{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:15px}.access-list article div{flex:1}.access-list small{display:block;color:var(--muted);margin-top:4px}.access-list button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px}.pill.off{background:#eee;color:#777}
.invite{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:15px}.invite div{flex:1}.invite small{display:block;color:var(--muted);margin-top:4px}.invite input{min-width:340px;border:1px solid var(--line);border-radius:8px;padding:9px}.invite button,.member button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px}.member.pending{border-color:#f0bf65}.member em{display:block;color:#a86b12;font-size:12px}.member div{flex:1}@media(max-width:700px){.invite{align-items:stretch;flex-direction:column}.invite input{min-width:0;width:100%}}
