@charset "UTF-8";
:root{--ink:#203632;--muted:#7c8985;--green:#245f4a;--dark:#163b38;--mint:#dff1e6;--paper:#f7f8f5;--line:#e5e9e3;--white:#fff;--amber:#a66b22;--radius:17px;font-family:"Leelawadee UI","Noto Sans Thai",Tahoma,system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:14px;line-height:1.65;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #83b99e;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:30px;line-height:1.45;letter-spacing:-.9px;font-weight:700}h2{font-size:18px;line-height:1.6;letter-spacing:-.3px}h3{font-size:15px;line-height:1.6}small{font-size:11px}.icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}button .icon{width:18px;height:18px}[hidden]{display:none!important}.muted{color:var(--muted)}.mono,code{font-family:Consolas,monospace;font-size:12px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700;color:var(--green);margin-bottom:10px}.subtitle{font-size:13px;color:var(--muted);margin-top:8px}.heading-dot{color:#71ac81}.button{display:inline-flex;justify-content:center;align-items:center;gap:9px;min-height:43px;padding:10px 17px;border:1px solid transparent;border-radius:9px;font-size:12px;font-weight:600;white-space:nowrap;transition:background .15s,transform .15s}.button:hover{transform:translateY(-1px)}.button.primary{background:var(--green);color:#fff;box-shadow:0 3px 7px #245f4a15}.button.primary:hover{background:#1d503d}.button.secondary{background:#fff;color:var(--ink);border-color:var(--line)}.button.secondary:hover{background:#f2f5f0}.button.dark{background:var(--dark);color:#fff}.button.danger-outline{border-color:#e6c9c5;color:#9a4e42;background:#fff}.button.small{font-size:11px;min-height:34px;padding:6px 12px}.full{width:100%}.button-group{display:flex;flex-wrap:wrap;gap:8px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:0;border-radius:8px;background:transparent;color:var(--muted)}.icon-button:hover{background:#eaf0e9;color:var(--dark)}.text-link{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--green)}.text-link .icon{width:15px;height:15px}.text-link:hover{text-decoration:underline}.text-button{border:0;background:transparent;color:var(--green);font-size:12px;padding:6px}.text-button:hover{text-decoration:underline}.badge,.pill{display:inline-flex;align-items:center;gap:6px;border-radius:6px;font-size:10px;font-weight:600;padding:4px 8px;white-space:nowrap}.pill{padding:6px 10px;border-radius:7px;font-size:11px}.status-present{background:#e7f3e9;color:#3c8054}.status-late{background:#fff1dc;color:#a7782c}.status-excused{background:#eeeafa;color:#7c64ad}.status-absent{background:#fbeceb;color:#b66255}.status-closed{background:#eef0ed;color:#828d84}.mint{background:var(--mint);color:var(--green)}.pulse-dot{width:6px;height:6px;display:inline-block;flex-shrink:0;background:#73a980;border-radius:50%}.demo-bar{background:#fff0cd;color:#876924;text-align:center;padding:7px 14px;font-size:10px;letter-spacing:.15px;position:relative;z-index:50}.admin-page:has(.demo-bar) .sidebar{top:31px}.admin-page:has(.demo-bar) .topbar{top:0}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:800;letter-spacing:-.7px;line-height:1.2}.brand-mark{background:var(--dark);color:#b9e6c5;display:inline-flex;align-items:center;justify-content:center;width:37px;height:37px;border-radius:11px;flex-shrink:0}.brand-mark .icon{width:24px;height:24px;stroke-width:2.4}.brand-light{font-weight:400}.brand small{display:block;font-size:7px;font-weight:600;letter-spacing:1.6px;margin-top:7px;color:var(--muted)}.sidebar{position:fixed;top:0;bottom:0;left:0;width:239px;background:#fff;border-right:1px solid var(--line);padding:32px 21px 0;display:flex;flex-direction:column;z-index:40}.sidebar>.brand{margin-left:5px;margin-bottom:47px}.nav-caption{font-size:10px;color:#9ba49d;margin:0 15px 12px}.sidebar nav{display:flex;flex-direction:column;gap:7px}.sidebar nav a{display:flex;align-items:center;gap:13px;border-radius:9px;padding:12px 14px;color:#7e8983;font-size:12px;min-height:44px}.sidebar nav a:hover{background:#f4f7f2;color:var(--green)}.sidebar nav a.active{background:#edf4e9;color:var(--green);font-weight:600}.sidebar nav .icon{width:18px;height:18px}.nav-dot{margin-left:auto;background:#3b7757;width:5px;height:5px;border-radius:50%;display:none}.active .nav-dot{display:block}.sidebar-note{margin-top:auto;padding:21px 15px;border:1px solid #e4ebdd;background:#f9faf4;border-radius:12px;margin-bottom:27px}.small-icon{display:block;color:#7f9e65;margin-bottom:10px}.sidebar-note strong{font-size:11px}.sidebar-note p{font-size:10px;color:#96a18b;line-height:1.9;margin-top:4px}.sidebar-bottom{border-top:1px solid var(--line);padding:22px 0;display:flex;align-items:center;gap:10px}.avatar{display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#e4ebdd;color:#687a54;border:1px solid #dbe3d1;width:35px;height:35px;border-radius:50%;font-weight:700}.sidebar-bottom strong{font-size:10px;display:block}.sidebar-bottom small{font-size:9px;color:var(--muted);display:block}.sidebar-bottom .icon-button{margin-left:auto;width:28px}.workspace{margin-left:239px}.topbar{height:74px;padding:0 37px;background:#ffffffb8;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:15px}.topbar-context,.topbar-right{display:flex;align-items:center;gap:15px;font-size:11px}.topbar-context>span:first-of-type{color:var(--muted)}.slash{color:#c6cdc6}.topbar-context strong{font-weight:500}.today{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px}.today .icon{width:14px;height:14px}.mode-pill{display:flex;align-items:center;gap:7px;padding:6px 10px;background:#f0f5eb;border:1px solid #e4ebdd;border-radius:20px;font-size:9px;color:#789363}.mobile-menu{display:none}.main-content{padding:32px 37px 0;max-width:1630px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:29px}.page-heading>.button{margin-top:10px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:30px}.stat-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:13px;padding:22px 20px 17px;min-height:153px}.stat-icon{position:absolute;top:20px;right:17px;width:31px;height:31px;display:flex;align-items:center;justify-content:center;border-radius:9px}.stat-icon .icon{width:17px;height:17px}.green{background:#e9f4e4;color:#6d9764}.amber{background:#fff1df;color:#bc944f}.lilac{background:#f0edf7;color:#a18cb5}.stat-label{font-size:11px;color:var(--muted)}.stat-number{font-size:35px;font-weight:600;line-height:1.2;letter-spacing:-1.5px;margin:15px 0 7px;font-family:system-ui,Tahoma,sans-serif}.stat-number span{font-size:11px;font-weight:400;color:#a4aaa3;letter-spacing:0;margin-left:8px;font-family:Tahoma,sans-serif}.stat-card>small{font-size:9px;color:#a6aea3}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1fr) 287px;gap:25px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.section-heading h2{font-size:16px}.live-label{display:flex;align-items:center;gap:6px;font-size:9px;color:#a2aca2}.live-label .pulse-dot{width:5px;height:5px}.session-list{display:grid;gap:16px}.session-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}.session-live{border-color:#b7d0b8;box-shadow:0 0 0 3px #edf3e8}.session-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.course-tag{font-family:system-ui,Tahoma,sans-serif;font-weight:600;font-size:10px;letter-spacing:.15px;color:#64816d;background:#edf2e9;padding:4px 7px;border-radius:4px;display:inline-block}.course-tag span{font-weight:400;color:#9aab98}.session-card h3{font-size:16px;margin-bottom:3px;font-weight:600}.session-card>p{font-size:11px;color:var(--muted)}.session-meta{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#a0aaa0;margin:18px 0 20px;gap:10px}.session-meta span:first-child{display:flex;align-items:center;gap:6px}.session-meta .icon{width:13px;height:13px}.progress-caption{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#8c998d}.progress-caption strong{color:var(--green);font-size:14px}.progress-caption small{font-size:10px;color:#a0aba0;font-weight:400}progress{display:block;appearance:none;width:100%;border:none;border-radius:6px;height:5px;overflow:hidden;background:#edf1e9;margin-top:8px}progress::-webkit-progress-bar{background:#edf1e9}progress::-webkit-progress-value{background:#70a882;border-radius:6px}progress::-moz-progress-bar{background:#70a882}.session-card-bottom{border-top:1px solid #f0f2ed;margin-top:21px;padding-top:14px;display:flex;justify-content:space-between;gap:10px;font-size:10px}.session-card-bottom .text-link{font-size:10px}.right-column{padding-top:41px}.start-card{padding:23px 24px 24px;border-radius:14px;background:#e8eedf;border:1px solid #e1e8d6;position:relative;overflow:hidden}.mini-label{font-family:system-ui,sans-serif;font-size:8px;letter-spacing:1.7px;font-weight:600;color:#91a17c}.decorative-qr{width:78px;height:78px;background:#fafbf5;border:1px solid #dbe4cc;box-shadow:0 9px 15px #7c945015;border-radius:17px;transform:rotate(-8deg);margin:22px auto 23px;display:flex;align-items:center;justify-content:center;color:#73925d;position:relative}.decorative-qr>.icon{width:51px;height:51px;stroke-width:1.5}.decorative-check{position:absolute;right:-11px;bottom:-5px;width:31px;height:31px;border-radius:50%;background:#72996b;border:3px solid #e8eedf;color:#fff;display:flex;align-items:center;justify-content:center}.decorative-check .icon{width:16px;height:16px}.start-card h2{font-size:24px;font-weight:500;line-height:1.6;letter-spacing:-.9px;color:#435e3d}.start-card p{font-size:10px;line-height:1.95;color:#8b9d7f;margin:10px 0 20px}.start-card .button{font-size:11px;justify-content:space-between;width:100%;background:#4e704c}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.connection-card{padding:20px;margin-top:19px}.connection-card h3{font-size:12px}.connection-card .section-heading{margin-bottom:9px}.connection-card .section-heading>.icon{width:15px;height:15px;color:#9cab99}.connection-row{display:flex;align-items:center;gap:10px;padding:11px 0}.service-icon{display:inline-flex;align-items:center;justify-content:center;width:31px;height:34px;border-radius:7px;font-family:system-ui,sans-serif;font-weight:700;flex-shrink:0;font-size:20px}.sheets-icon{background:#edf5ed;color:#539761}.line-icon{background:#e9f7e4;color:#5fae44;font-size:17px}.google-icon{background:#f0f2f9;color:#6585b5}.connection-row strong{font-family:system-ui,Tahoma,sans-serif;display:block;font-size:10px;font-weight:600}.connection-row small{display:block;font-size:8px;color:#a1aba0;margin-top:2px;max-width:165px}.status-dot{width:6px;height:6px;display:block;background:#d9dfd6;border-radius:50%;margin-left:auto}.status-dot.online{background:#7bab7d}.connection-card>.text-link{font-size:9px;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:15px;margin-top:8px}.quiet-note{display:flex;align-items:flex-start;gap:7px;font-size:10px;color:#9ea89c;line-height:1.85;margin-top:16px}.quiet-note .icon{width:14px;height:14px;margin-top:2px}.right-column>.quiet-note{font-size:9px;padding:0 12px}.workspace-footer{border-top:1px solid var(--line);margin-top:36px;padding:21px 0;display:flex;align-items:center;justify-content:space-between;gap:15px;color:#a4ada1;font-size:8px;font-family:system-ui,Tahoma,sans-serif}.footer-separator{margin:0 8px;color:#c4ccc0}.course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.course-tile{padding:25px}.course-tile h2{margin:15px 0 6px}.course-tile .muted{font-size:12px}.course-tile-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:19px;margin-top:25px;font-size:12px;color:var(--muted)}.course-tile-bottom .icon{width:17px;height:17px}.table-toolbar{padding:20px 23px;display:flex;align-items:center;justify-content:space-between;gap:15px}.table-toolbar strong{font-size:12px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{background:#fafbf8;color:#94a08f;padding:13px 22px;font-size:10px;font-weight:500;border-top:1px solid #f1f3ec;border-bottom:1px solid #f1f3ec}td{padding:16px 22px;border-bottom:1px solid #f0f2ec;font-size:11px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fdfefb}.table-secondary{display:block;font-size:9px;color:#9ca699;margin-top:3px}.settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.settings-tile{padding:25px}.settings-tile h2{margin-top:14px}.settings-tile p{font-size:11px;color:var(--muted);margin:10px 0 15px}.audit-panel{margin-top:25px}.audit-panel>h2{padding:22px}.audit-details{max-width:350px;white-space:normal;word-break:break-word}.compact-stats .stat-card{min-height:112px;padding:19px 22px}.compact-stats .stat-number{font-size:30px;margin-bottom:0}.back-link{margin-bottom:22px}.empty-state{text-align:center;padding:45px 24px;background:#fff;border:1px dashed #d9e2d1;border-radius:13px;color:#85957d}.empty-state>.icon{width:35px;height:35px;margin-bottom:15px}.empty-state h3,.empty-state h2{font-size:16px;color:#5b7354}.empty-state p{font-size:12px;margin:8px 0 20px}.empty-state .button{margin-top:5px}
input,select,textarea{border:1px solid #dfe5dc;background:#fff;border-radius:8px;min-height:44px;padding:11px 13px;width:100%;color:var(--ink);font-size:12px;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:#7aa78a;outline:2px solid #7aa78a20}input::placeholder,textarea::placeholder{color:#b1b8ac}input[type=checkbox]{width:15px;height:15px;min-height:0;accent-color:var(--green)}.search-input{width:220px;min-height:36px;padding:8px 12px;font-size:11px;background:#fcfdf9}label{display:block;font-size:12px;font-weight:500;margin-bottom:17px}label>input,label>select,label>textarea{display:block;margin-top:7px}textarea{resize:vertical}.helper{font-size:10px;color:#97a28f;margin-top:10px;line-height:1.85}.form-error,.inline-error{font-size:11px;color:#a6584c;background:#fff1eb;border-radius:8px;padding:11px 13px;margin:10px 0 15px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.roster-picker{max-height:220px;overflow-y:auto;border:1px solid var(--line);border-radius:9px;padding:5px 14px;margin-bottom:18px}.roster-picker label{display:flex;align-items:center;gap:10px;border-bottom:1px solid #f1f3ed;padding:9px 0;margin:0;font-size:11px}.roster-picker label:last-child{border-bottom:0}.roster-picker label>input{margin:0}.picker-title{font-size:12px;margin-bottom:8px}.picker-title small{font-weight:400;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:17px;padding:26px;width:min(530px,calc(100% - 30px));max-height:90vh;color:var(--ink);box-shadow:0 30px 100px #163b3829}dialog::backdrop{background:#152c265e;backdrop-filter:blur(3px)}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.modal-header h2{font-size:20px}.modal-copy{font-size:12px;color:var(--muted);margin-bottom:20px}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:23px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--dark);border:1px solid #446559;color:#fff;padding:13px 23px;border-radius:12px;box-shadow:0 10px 40px #163b3824;z-index:200;font-size:12px;max-width:calc(100% - 35px);text-align:center}.toast.error{background:#8d4d41;border-color:#ad766b}
.login-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-page:has(.demo-bar) .login-layout{min-height:calc(100vh - 31px)}.login-story{background:#e6eddf;position:relative;padding:40px 55px;display:flex;flex-direction:column;overflow:hidden}.login-story .brand{font-size:23px}.login-story-copy{margin:auto 0;max-width:470px;padding:45px 10px}.login-story-copy .eyebrow{font-family:system-ui,sans-serif;color:#8a9d77;font-size:10px}.login-story h1{font-size:52px;line-height:1.5;font-weight:500;letter-spacing:-1.5px;margin-top:20px;color:#415c3b}.login-story h1 span{color:#8daa73}.login-story-copy>p{font-size:14px;color:#90a080;margin-top:20px;line-height:1.9}.login-illustration{margin:44px 0 0;position:relative;width:310px;max-width:100%;padding-bottom:15px}.illustration-card{background:#f8faf3;border:1px solid #dbe4cf;border-radius:17px;box-shadow:0 17px 30px #617d4110;transform:rotate(-3deg);padding:20px;text-align:center;width:260px;max-width:90%}.illustration-card>.mini-label{font-size:7px}.illustration-check{display:flex;align-items:center;justify-content:center;width:51px;height:51px;border:1px solid #c4d9b5;background:#e2eed8;border-radius:50%;color:#71965d;margin:20px auto 12px}.illustration-check .icon{width:26px;height:26px}.illustration-card strong{font-size:14px;display:block;font-weight:500;color:#6c8757}.illustration-card small{font-size:8px;color:#a1af92;display:block;margin-top:5px}.floating-code{position:absolute;right:5px;bottom:0;background:#5a7b51;color:#eef4e8;border:5px solid #e6eddf;border-radius:11px;padding:13px;display:flex;gap:7px;align-items:center;font-size:8px;font-family:system-ui,sans-serif;transform:rotate(6deg)}.floating-code .icon{width:27px;height:27px}.story-footer{color:#9bac8b;font-size:9px;font-family:system-ui,sans-serif}.login-form-side{display:flex;align-items:center;justify-content:center;padding:50px 40px;background:#fdfefa}.login-card{width:350px;max-width:100%}.login-card>.pill{margin-bottom:22px}.login-card h2{font-size:30px;font-weight:600}.login-card>.subtitle{margin:8px 0 30px}.login-card form>.button{margin-top:7px;min-height:47px}.login-card label{margin-bottom:20px}.divider{display:flex;align-items:center;gap:15px;font-size:10px;color:#a3ac9c;margin:22px 0}.divider:before,.divider:after{content:"";height:1px;flex:1;background:var(--line)}.google-letter{font-family:system-ui;font-size:18px;color:#5982ac}.demo-login{border:1px solid #e4e9db;background:#f5f7ee;padding:14px 16px;border-radius:10px;margin-top:23px;font-size:10px;color:#889a75}.demo-login strong{font-size:10px;color:#657d50}.demo-login p{font-size:10px;line-height:2;margin-top:4px}.demo-login code{font-size:10px;color:#6e8557}.login-switch{text-align:center;border-top:1px solid var(--line);padding-top:20px;margin-top:25px;font-size:10px;color:#88a072}.login-switch .icon{width:13px;height:13px}.privacy-note{display:flex;align-items:center;justify-content:center;gap:6px;font-size:9px;line-height:1.8;color:#a2ad9a;margin:22px 0}.privacy-note .icon{width:13px;height:13px}.student-header{max-width:1000px;display:flex;align-items:center;justify-content:space-between;margin:auto;padding:25px 30px;border-bottom:1px solid var(--line)}.student-header .brand{font-size:21px}.student-main{width:min(800px,calc(100% - 50px));margin:40px auto 60px}.student-main h1{font-size:30px}.student-hint{display:flex;align-items:center;gap:17px;background:#eaf0e1;border:1px solid #e1e7d7;border-radius:13px;padding:22px;margin:30px 0}.student-hint>.icon{width:32px;height:32px;color:#789462}.student-hint strong{font-size:13px;font-weight:500}.student-hint p{font-size:11px;color:#8d9c7e;margin-top:4px}.student-sessions{display:grid;gap:12px}.student-session{display:flex;align-items:center;gap:17px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;transition:border-color .2s}.student-session:hover{border-color:#94b294}.student-course-icon{display:flex;align-items:center;justify-content:center;background:#f1f5eb;border-radius:10px;width:43px;height:46px;color:#86a075;flex-shrink:0}.student-session strong{font-size:12px}.student-session p{font-size:11px;color:var(--muted);margin-top:3px}.student-session small{font-size:9px;color:#a5afa0}.student-session .badge{margin-left:auto}.student-session>.icon{width:15px;color:#a0b093}.checkin-main{width:min(530px,calc(100% - 36px));margin:35px auto 60px}.checkin-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px}.checkin-card-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.checkin-card h1{font-size:25px}.checkin-schedule{font-size:10px;color:#95a08c;border-bottom:1px solid var(--line);padding:18px 0 22px;display:flex;gap:7px;align-items:center}.checkin-schedule .icon{width:14px;height:14px}.identity-card{background:#f4f7ef;border:1px solid #e8eddf;border-radius:10px;padding:15px;display:flex;align-items:center;gap:12px;margin:23px 0}.identity-card strong{font-size:12px}.identity-card small{display:block;font-size:10px;color:#9da992}.identity-card>.icon{margin-left:auto;color:#8ca279;width:17px}.checkin-ready{display:flex;gap:9px;align-items:center;font-size:11px;color:#7e9670;margin-bottom:20px}.checkin-ready>.icon{width:23px;height:23px}details{margin-bottom:18px}summary{font-size:10px;color:#92a484;cursor:pointer}details label{margin-top:15px}input[name=code]{text-align:center;font-size:24px;font-family:Consolas,monospace;letter-spacing:8px;min-height:60px}.receipt{text-align:center;padding:12px 0 0}.receipt-icon{display:flex;align-items:center;justify-content:center;margin:0 auto 18px;width:63px;height:63px;background:#e9f3e1;border:1px solid #d6e7ca;border-radius:50%;color:#80a464}.receipt-icon>.icon{width:32px;height:32px}.receipt h2{font-size:22px;margin-bottom:10px}.receipt>p{font-size:11px;color:#8d9f7e;margin-top:14px}.receipt-ref{font-family:Consolas,monospace;font-size:9px!important;border-top:1px solid var(--line);padding-top:17px;margin-top:24px!important;overflow-wrap:anywhere}.project-header{display:flex;align-items:center;justify-content:space-between;padding:30px 5vw;border-bottom:1px solid var(--line)}.project-layout{display:grid;grid-template-columns:1fr 420px;gap:70px;align-items:center;max-width:1100px;margin:40px auto 70px;padding:0 25px}.project-copy>.eyebrow{margin:30px 0 13px}.project-copy h1{font-size:48px;line-height:1.5;font-weight:500;letter-spacing:-1.2px}.project-copy h1 span{color:#82aa69}.project-copy h2{font-size:17px;color:#688159;margin-top:20px;font-weight:500}.project-copy>p:not(.eyebrow){font-size:13px;color:#95a48a;margin-top:6px}.project-instructions{margin:27px 0}.project-instructions p{font-size:12px;color:#7f9174;display:flex;align-items:center;gap:14px;margin:13px 0}.project-instructions span{font-family:system-ui;font-size:10px;background:#e9efdf;border:1px solid #dfe7d3;color:#91a580;padding:3px 7px;border-radius:5px}.project-copy .project-timing{font-size:11px!important}.qr-panel{background:#fff;border:1px solid #dfe7d6;border-radius:20px;padding:23px;box-shadow:0 15px 60px #63744909}.qr-caption{display:flex;align-items:center;justify-content:space-between;font-size:10px;font-family:system-ui;color:#91a080;letter-spacing:2px;margin-bottom:12px}.qr-caption .icon{color:#7d976c}.qr-frame{width:100%;aspect-ratio:1;border-radius:10px;border:1px solid #e5ebdd;overflow:hidden;display:flex;align-items:center;justify-content:center}.qr-frame img{width:100%;height:100%;object-fit:contain}.qr-frame p{color:#9aa78e;font-size:13px}.qr-countdown{display:flex;align-items:center;justify-content:center;gap:7px;font-size:10px;color:#94a286;margin-top:14px}.room-code{text-align:center;padding:15px 0 19px;margin-top:14px;border-top:1px solid var(--line)}.room-code>span{font-size:10px;color:#99a68c}.room-code strong{display:block;font-family:Consolas,monospace;font-size:32px;letter-spacing:8px;color:#506e43;margin-top:3px}.qr-panel>.helper{text-align:center;font-size:9px}.error-page{max-width:650px;margin:12vh auto;text-align:center;padding:30px}.error-page>.brand-mark{margin-bottom:25px}.error-page h1{font-size:25px;margin:20px 0 30px}
@media(min-width:1500px){.main-content{padding:42px 50px 0}.topbar{padding:0 50px}.dashboard-columns{grid-template-columns:minmax(0,1fr) 315px}.session-list{grid-template-columns:repeat(2,minmax(0,1fr))}.session-card{padding:24px}.right-column{padding-top:41px}.stat-card{padding:25px;min-height:165px}.start-card{padding:27px}}
@media(max-width:1200px){.sidebar{width:215px;padding-left:15px;padding-right:15px}.workspace{margin-left:215px}.main-content{padding:27px 25px 0}.topbar{padding:0 25px}.dashboard-columns{grid-template-columns:minmax(0,1fr) 250px;gap:18px}h1{font-size:25px}.stat-card{padding:20px 14px}.stat-icon{right:12px;width:26px;height:26px}.stat-label{font-size:10px}.stat-number{font-size:31px}.page-heading>.button{font-size:11px}.start-card{padding:20px}.start-card h2{font-size:22px}.settings-grid{grid-template-columns:1fr}.login-story{padding:30px}.login-story h1{font-size:43px}.project-layout{gap:40px;grid-template-columns:1fr 380px}.project-copy h1{font-size:40px}}
@media(max-width:980px){.sidebar{width:195px}.sidebar .brand{font-size:17px;gap:8px}.sidebar .brand-mark{width:32px;height:32px}.sidebar .brand small{font-size:6px}.workspace{margin-left:195px}.main-content{padding:25px 22px 0}.topbar{padding:0 22px}.dashboard-columns{grid-template-columns:1fr}.right-column{padding-top:5px;display:grid;grid-template-columns:1fr 1fr;gap:17px;align-items:start}.connection-card{margin-top:0}.right-column>.quiet-note{grid-column:1/-1;margin-top:-7px}.start-card{padding:20px;min-height:240px}.decorative-qr{position:absolute;right:22px;top:55px;width:60px;height:60px;margin:0}.decorative-qr>.icon{width:40px;height:40px}.start-card h2{font-size:21px;margin-top:25px}.start-card p{font-size:9px;margin:7px 0 18px}.start-card .button{min-height:35px}.stat-card{min-height:138px}.stat-icon{top:15px;right:12px;width:24px;height:24px}.stat-icon .icon{width:14px;height:14px}.stats-grid{gap:11px}.stat-label{font-size:9px}.stat-number{font-size:28px;margin-top:19px}.stat-card>small{font-size:8px}.topbar-right .today{display:none}.course-grid{grid-template-columns:1fr}.project-layout{grid-template-columns:1fr 340px;gap:25px}.project-copy h1{font-size:33px}.project-instructions p{font-size:11px}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);width:239px;box-shadow:10px 0 50px #20363210;transition:transform .2s}.sidebar.open{transform:translateX(0)}.sidebar .brand{font-size:20px}.workspace{margin-left:0}.mobile-menu{display:inline-flex}.topbar{height:62px;padding:0 18px}.topbar-context{gap:9px}.mode-pill{font-size:8px;padding:5px 8px}.main-content{padding:25px 20px 0}.page-heading{align-items:flex-start;flex-direction:column;gap:16px;margin-bottom:24px}.page-heading h1{font-size:27px}.page-heading>.button{margin-top:0;min-height:40px;font-size:11px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:25px}.stat-card{min-height:136px;padding:20px}.stat-label{font-size:11px}.stat-icon{top:17px;right:17px;width:28px;height:28px}.stat-icon .icon{width:16px;height:16px}.stat-number{font-size:33px;margin-top:14px}.stat-card>small{font-size:9px}.session-card{padding:20px}.session-card h3{font-size:16px}.section-heading h2{font-size:16px}.session-meta{font-size:9px}.right-column{grid-template-columns:1fr 1fr}.start-card h2{font-size:20px}.decorative-qr{width:47px;height:47px;right:19px;top:60px}.decorative-qr>.icon{width:31px;height:31px}.decorative-check{width:23px;height:23px;border-width:2px;right:-6px}.decorative-check .icon{width:12px;height:12px}.connection-card{padding:18px}.workspace-footer{font-size:8px}.workspace-footer>span:last-child{display:none}.table-toolbar{padding:17px;align-items:flex-start;flex-direction:column}.search-input{width:100%}th,td{padding:13px 17px}.table-scroll table{font-size:11px}.course-tile{padding:22px}.settings-tile{padding:22px}.login-layout{grid-template-columns:1fr;min-height:100vh}.login-story{padding:24px 26px;background:#e8efdf;min-height:220px}.login-story .brand{font-size:20px}.login-story-copy{padding:26px 0 0;margin:0}.login-story-copy .eyebrow{font-size:8px}.login-story h1{font-size:32px;line-height:1.4;margin-top:10px}.login-story h1 br{display:none}.login-story-copy>p{font-size:11px;margin-top:10px}.login-story-copy>p br{display:none}.login-illustration,.story-footer{display:none}.login-form-side{padding:32px 26px 25px;align-items:flex-start}.login-card{width:100%;max-width:390px}.login-card>.pill{margin-bottom:13px}.login-card h2{font-size:26px}.login-card>.subtitle{margin-bottom:24px;font-size:12px}.login-card label{margin-bottom:18px}.login-switch{margin-top:20px}.student-header{padding:18px 23px}.student-header .brand{font-size:19px}.student-main{width:calc(100% - 36px);margin-top:28px}.student-main h1{font-size:26px}.student-hint{padding:18px;gap:12px}.student-hint p{font-size:10px}.student-session{padding:17px;gap:12px;flex-wrap:wrap}.student-session>div{flex:1;min-width:180px}.student-session strong{font-size:11px}.student-session .badge{margin-left:55px}.student-session>.icon{margin-left:auto}.checkin-main{margin-top:25px}.checkin-card{padding:22px}.checkin-card h1{font-size:22px}.checkin-schedule{font-size:9px}.project-header{padding:22px}.project-header .brand{font-size:18px}.project-header .button{font-size:9px;padding:8px 11px;min-height:36px}.project-layout{grid-template-columns:1fr;max-width:500px;margin-top:25px;gap:25px;padding:0 22px}.project-copy h1{font-size:32px}.project-copy h1 br{display:none}.project-copy>.eyebrow{margin:19px 0 10px}.project-copy h2{font-size:15px;margin-top:12px}.project-instructions{display:none}.project-copy .project-timing{margin-top:15px!important}.qr-panel{padding:22px}.qr-caption{font-size:9px}.qr-countdown{font-size:10px}.room-code strong{font-size:30px}}
@media(max-width:440px){.topbar-right .mode-pill{font-size:7px}.topbar-context{font-size:10px}.page-heading h1{font-size:24px}.subtitle{font-size:11px}.main-content{padding-left:17px;padding-right:17px}.right-column{grid-template-columns:1fr}.start-card{min-height:0;padding:23px}.start-card h2{font-size:23px;margin-top:20px}.decorative-qr{width:73px;height:73px;right:30px;top:42px}.decorative-qr>.icon{width:46px;height:46px}.start-card p{font-size:11px}.start-card h2 br{display:none}.start-card .button{max-width:190px}.connection-card{padding:22px}.connection-row strong{font-size:11px}.connection-row small{font-size:9px}.right-column>.quiet-note{margin-top:0}.live-label{font-size:8px}.session-card-top{gap:6px}.session-card-top .badge{font-size:9px}.session-card h3{font-size:15px}.session-card-bottom .text-link,.session-card-bottom{font-size:9px}.course-tag{font-size:9px}.workspace-footer{font-size:7px}.form-row{grid-template-columns:1fr;gap:0}.button-group .button{font-size:10px;padding:9px 12px}.checkin-card-heading .badge{font-size:9px}.checkin-card h1{font-size:20px}.identity-card{padding:13px;gap:10px}.identity-card strong{font-size:11px}.identity-card small{font-size:9px}.identity-card .avatar{width:31px;height:31px}.demo-bar{font-size:8px;padding:6px 8px}.admin-page:has(.demo-bar) .sidebar{top:25px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.button:hover{transform:none}}
@media(max-width:760px){.sidebar{visibility:hidden}.sidebar.open{visibility:visible}}

.line-notification-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:22px 0 8px}.line-notification-toggle input{appearance:none;display:block;flex-shrink:0;width:46px;height:26px;min-height:0;border:0;border-radius:20px;background:#bec7bf;padding:0;margin:0;position:relative;cursor:pointer;transition:background .15s}.line-notification-toggle input::before{content:'';position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0002;transition:transform .15s}.line-notification-toggle input:checked{background:var(--green)}.line-notification-toggle input:checked::before{transform:translateX(20px)}.line-notification-toggle input:disabled{opacity:.6;cursor:wait}.line-notification-state{font-weight:600;color:var(--green)}


.registration-link{margin-top:20px;padding-top:17px;border-top:1px solid var(--line)}.registration-link>p{font-size:12px;color:var(--muted);text-align:center;margin-bottom:10px}.register-card{padding-top:12px;padding-bottom:12px}.register-card form{margin-top:24px}.register-card label{margin-bottom:13px}.register-card>.helper{margin-top:15px}


.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;padding-bottom:35px}.account-card{padding:27px}.account-card>p{font-size:12px;margin-top:8px}.account-card form{margin-top:25px}.account-permissions{margin-top:20px}.account-permissions>div{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.permission-badge{margin:2px 3px 2px 0}.permission-picker>label{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:15px;align-items:center;margin:0;padding:11px 0;border-bottom:1px solid var(--line)}.permission-picker strong,.permission-picker small{display:block}.permission-picker small{color:var(--muted);font-size:10px;font-weight:400;margin-top:4px}.permission-picker select{margin:0;min-height:38px;font-size:11px}.checkbox-label{display:flex;gap:9px;align-items:center}.checkbox-label>input{margin:0}.sidebar-bottom>div:not(.avatar){min-width:0}.sidebar-bottom strong{overflow:hidden;text-overflow:ellipsis;max-width:130px;white-space:nowrap}@media(max-width:760px){.account-grid{grid-template-columns:1fr}.account-card{padding:22px}.permission-picker>label{grid-template-columns:minmax(0,1fr) 128px}}

