:root{font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft Yahei,sans-serif;color:#263334;background:#f4f6f5;font-synthesis:none;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{border:1px solid #dce3df;background:#fff;border-radius:8px;padding:10px 15px;cursor:pointer;color:inherit;transition:.15s}button:hover{border-color:#248470;background:#f0f8f5}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:#196f5d;color:#fff;border-color:#196f5d}input,select,textarea{border:1px solid #dce3df;border-radius:8px;background:#fff;padding:11px 12px;outline:none;max-width:100%;color:#263334}input:focus,select:focus,textarea:focus{border-color:#248470;box-shadow:0 0 0 3px #24847014}label{display:flex;flex-direction:column;gap:9px;margin:20px 0}h1,h2,h3,p{margin-top:0}h1{font-size:29px;letter-spacing:-.6px;font-weight:650;margin-bottom:0}h2{font-size:18px;margin-bottom:14px}h3{font-size:15px}small{font-size:12px;color:#82918d}code{font-size:11px;overflow-wrap:anywhere}.muted{color:#7a8984;font-size:13px}.eyebrow{font-size:10px;letter-spacing:2px;color:#85948d;font-weight:650;margin-bottom:12px}.layout{display:flex;min-height:100vh}aside{width:224px;position:fixed;inset:0 auto 0 0;background:#142f2b;color:#e0eae4;display:flex;flex-direction:column;padding:32px 20px}.brand{display:flex;align-items:center;gap:13px;margin-bottom:58px;font-size:23px;letter-spacing:3px}.brand b,.brand-mark{background:#cee2b8;color:#193b31;border-radius:12px;display:grid;place-items:center;width:54px;height:44px;font-family:Georgia,serif;font-size:24px}.brand small{display:block;letter-spacing:2px;margin-top:4px;font-size:9px;color:#8fa9a0}.nav-caption{color:#6e9187;font-size:10px;letter-spacing:2px;margin-left:12px}nav{display:grid;gap:8px}nav button{text-align:left;border:0;background:none;color:#98b2a8;padding:14px 16px}nav button span{display:inline-block;width:30px;font-size:20px}nav button.active{background:#284a40;color:#def1ca}.sidebar-foot{margin-top:auto;font-size:11px;color:#b2c4bd}.sidebar-foot p{font-size:10px;color:#71958a;margin-top:12px}.sidebar-foot button{background:transparent;border-color:#355047;color:#94b1a5;font-size:11px}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#58a687;margin-right:6px}main{margin-left:224px;width:calc(100% - 224px);padding:38px 42px 20px;max-width:1800px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.header-actions{display:flex;align-items:center;gap:12px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:26px 0}.metrics article{background:#fff;border:1px solid #e3e9e5;border-radius:12px;padding:22px}.metrics article>span{font-size:12px;color:#718078}.metrics strong{display:block;font-size:33px;font-weight:550;margin:16px 0 12px}.metrics strong small{font-size:12px;margin-left:9px;font-weight:400}.metrics p{font-size:11px;color:#849089;margin:0}.panel{background:#fff;border:1px solid #e3e9e5;border-radius:12px;padding:24px;margin-bottom:22px;overflow:hidden}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:15px}.panel-title h2{margin:0}.panel-title h2 small{margin-left:8px}.panel-title p{margin:9px 0 0}.panel-title input{width:230px;font-size:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}th{font-size:11px;font-weight:500;color:#7b8a82;background:#f7f9f7;padding:13px 12px}td{padding:18px 12px;border-bottom:1px solid #edf0ed}td b{font-weight:550}td small{display:block;margin-top:7px;font-size:10px}tr[tabindex]{cursor:pointer}tr.selected,tr[tabindex]:hover{background:#f1f7f3}.badge{display:inline-block;border-radius:20px;font-size:10px;background:#eff2ef;color:#7b857d;padding:5px 9px;white-space:nowrap}.badge.green{background:#edf6ef;color:#347850}.empty{text-align:center;padding:65px 20px;color:#7e8d83}.empty>span{font-size:42px;color:#8fb2a2;display:block;margin-bottom:20px}.empty h3{color:#3f594b;font-size:18px}.empty p{font-size:12px;line-height:1.8}.empty button{margin-top:10px}.device-info{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;color:#75827a;margin:24px 0}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0 28px}.actions button{font-size:12px}.error,.success{padding:13px 16px;border-radius:8px;margin-bottom:16px;line-height:1.6;font-size:13px}.error{background:#fff0ed;color:#ad4f3c}.success{background:#e9f4e9;color:#337d53}footer{font-size:10px;color:#92a097;display:flex;justify-content:space-between;margin-top:35px}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}.gallery article{border:1px solid #e6ece6;border-radius:9px;overflow:hidden;padding:0 0 15px}.gallery img,.no-image{width:100%;height:170px;object-fit:cover;background:#eef2ed;display:grid;place-items:center;color:#8a978c;font-size:12px}.gallery b,.gallery p,.gallery button{margin:12px 14px 0;display:block;font-size:12px}.gallery p{font-size:10px;color:#89978b}.overlay{position:fixed;inset:0;background:#102a2566;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:10;padding:25px}.modal{position:relative;max-width:500px;width:100%;max-height:90vh;overflow:auto;background:#fff;border-radius:16px;padding:32px;box-shadow:0 20px 100px #15372d33}.modal .close{position:absolute;right:14px;top:12px;border:0;font-size:22px}.modal h2{margin-top:4px}.modal form>.primary{width:100%;margin-top:12px}.activation{display:block;background:#f0f4ef;border:1px dashed #b9cbbd;padding:20px;margin:20px 0;overflow-wrap:anywhere;font-size:15px}.license-code{display:flex;align-items:center;gap:8px}.license-code code{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.license-code button{flex:none}.institution-workspace{min-height:360px}.institution-list,.institution-overview{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.institution-card,.institution-overview button{display:flex;flex-direction:column;align-items:flex-start;gap:10px;text-align:left;padding:20px;background:#f8faf8;min-height:128px}.institution-card strong,.institution-overview strong{font-size:18px;font-weight:600}.institution-card code{color:#64756d}.institution-card span,.institution-overview span{color:#6b8074;font-size:12px;width:100%}.institution-card b{float:right;color:#196f5d}.institution-heading{display:flex;align-items:center;gap:20px;margin-bottom:24px}.institution-heading h2{display:inline;margin-right:12px}.institution-tabs{display:flex;gap:6px;border-bottom:1px solid #dce3df;overflow-x:auto}.institution-tabs button{flex:none;border:0;border-radius:8px 8px 0 0;background:transparent;color:#6b8074}.institution-tabs button.active{background:#eaf4ed;color:#196f5d;font-weight:600}.institution-section{padding-top:24px}.institution-section .detail{background:#fafcfb;margin:24px 0 0}.institution-overview{margin-bottom:28px}.institution-inline-form,.institution-controls{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.institution-inline-form label{min-width:180px;flex:1}.institution-inline-form button{margin-bottom:20px}.institution-controls{align-items:center;margin:18px 0}.institution-controls input{min-width:260px;flex:1}.institution-create{border-top:1px solid #e3e9e5;margin-top:22px;padding-top:18px}.institution-create summary{cursor:pointer;color:#196f5d;font-weight:600}.page-nav{display:flex;align-items:center;justify-content:flex-end;gap:8px;color:#7a8984;margin-top:18px;font-size:12px}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-story{background:#163d32;color:#ebf1df;padding:70px 12%;overflow:hidden}.login-story .eyebrow{margin-top:60px;color:#a4baa2}.login-story h1{font-size:40px;line-height:1.7;font-weight:500}.login-story p:last-of-type{color:#a0b49e;margin-top:28px;font-size:13px}.login-form{align-self:center;margin:auto;width:350px;max-width:85%}.login-form h2{font-size:28px}.login-form button{width:100%;margin:15px 0 30px}.login-form small{display:block;font-size:10px}.art-shape{display:flex;align-items:flex-end;margin-top:70px;gap:16px;transform:rotate(-10deg)}.art-shape span{display:block;width:90px;height:160px;background:#d0d9b0;border-radius:70px 70px 10px 10px}.art-shape span:nth-child(2){height:230px;background:#86a17d}.art-shape span:nth-child(3){height:120px;background:#dc9d77;border-radius:100px}@media(max-width:1100px){aside{width:185px;padding:25px 16px}main{margin-left:185px;width:calc(100% - 185px);padding:30px 24px}.metrics{gap:10px}.header-actions .muted{display:none}.metrics article{padding:17px}}@media(max-width:760px){aside{position:static;width:auto;padding:16px}.layout{display:block}.brand,.nav-caption,.sidebar-foot{display:none}nav{display:flex}nav button{padding:10px;font-size:12px}nav button span{width:20px}main{margin:0;width:100%;padding:22px 14px}h1{font-size:23px}.metrics{grid-template-columns:repeat(2,1fr)}.panel{padding:16px}header{align-items:flex-start}.header-actions{gap:6px}.header-actions button{font-size:11px;padding:9px}.panel-title{flex-wrap:wrap}.login{display:block}.login-story{display:none}.login-form{padding-top:20vh}footer span{display:none}}.device-batch{margin-top:20px;padding:18px;border:1px solid #dce3df;border-radius:12px;background:#f7faf8}.device-batch form{display:grid;gap:12px}.device-batch label{display:grid;gap:6px}.device-batch h4{margin-top:0}.institution-section input[type=checkbox]{width:18px;height:18px;accent-color:#196f5d}.device-batch .table-wrap{max-height:320px;overflow:auto}.device-drawer-backdrop{position:fixed;inset:0;z-index:8;background:#102a2566;display:flex;justify-content:flex-end}.device-drawer{width:min(920px,100%);height:100%;overflow-y:auto;overscroll-behavior:contain;background:#f6f8f7;box-shadow:-8px 0 36px #102a2526;padding:24px}.device-drawer-content{border:0;padding:0;margin:0;min-width:0}.device-drawer .detail{margin-top:12px}.device-delete{margin-top:24px;border:1px solid #e6baba;border-radius:12px;padding:20px;background:#fff}.device-delete p{line-height:1.7;overflow-wrap:anywhere}.device-delete button.danger{background:#aa302b;color:#fff;border-color:#aa302b}@media(max-width:600px){.device-drawer{padding:14px}}
