:root{--purple: #7847e1;--purple-hover: #6535c9;--purple-soft: #f3edfc;--blue: #6bbde6;--blue-hover: #4aabd9;--blue-badge: #2b9aed;--coral: #f08e8e;--coral-hover: #e67878;--green: #5cbf8a;--green-hover: #47ab76;--gray-btn: #ededf2;--gray-btn-hover: #e0e0e8;--bg: #f7f8fc;--bg-header: #ffffff;--bg-card: #ffffff;--text: #333333;--text-muted: #777777;--border: #e8e8ee;--radius: 5px;--shadow: 0 1px 2px rgba(50, 40, 90, .06)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}a{color:var(--purple)}.container{max-width:1100px;margin:0 auto;padding:24px 20px}header{background:var(--bg-header);color:var(--text);padding:12px 20px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:32px;height:32px;border-radius:8px;background:var(--purple);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.95rem;letter-spacing:-.02em}header h1{font-size:1.15rem;font-weight:700;color:var(--purple)}header .user-info{display:flex;gap:14px;align-items:center;font-size:.9rem;color:var(--text-muted)}header .user-info button{background:var(--coral);color:#fff;border:none;padding:6px 14px;border-radius:var(--radius);cursor:pointer;font-size:.85rem;font-weight:600}header .user-info button:hover{background:var(--coral-hover)}.main-nav{display:flex;gap:4px;flex:1;justify-content:center;flex-wrap:wrap}.main-nav a{padding:6px 14px;border-radius:var(--radius);text-decoration:none;color:var(--text-muted);font-weight:600;font-size:.9rem}.main-nav a:hover{background:var(--purple-soft);color:var(--purple)}.main-nav a.active{background:var(--purple);color:#fff}.card{background:var(--bg-card);border-radius:8px;padding:20px;margin-bottom:16px;border:1px solid var(--border);box-shadow:var(--shadow)}.card h2{font-size:1.05rem;margin-bottom:12px;color:var(--purple);font-weight:700}.form-group{margin-bottom:12px}.form-group label{display:block;font-size:.85rem;font-weight:600;margin-bottom:4px;color:var(--text-muted)}.form-group input,.form-group select{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:.95rem;background:#fff;color:var(--text)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px #7847e126}.form-group input:disabled,.form-group select:disabled{background:var(--gray-btn);color:var(--text-muted);cursor:default}.form-group.has-error input,.form-group.has-error select{border-color:var(--coral)}.form-group.has-error input:focus,.form-group.has-error select:focus{border-color:var(--coral);box-shadow:0 0 0 3px #f08e8e40}.field-error{color:var(--coral-hover);font-size:.78rem;margin-top:4px;font-weight:600}.field-hint{color:var(--text-muted);font-size:.78rem;margin-top:4px}.btn{padding:8px 18px;border:none;border-radius:var(--radius);cursor:pointer;font-size:.9rem;font-weight:600;transition:background .15s ease;text-decoration:none;display:inline-block}.btn-primary{background:var(--purple);color:#fff}.btn-primary:hover{background:var(--purple-hover)}.btn-success{background:var(--blue);color:#fff}.btn-success:hover{background:var(--blue-hover)}.btn-danger{background:var(--coral);color:#fff}.btn-danger:hover{background:var(--coral-hover)}.btn-secondary{background:var(--gray-btn);color:#4a4a55}.btn-secondary:hover{background:var(--gray-btn-hover)}.btn:disabled{opacity:.5;cursor:default}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}th{background:transparent;font-weight:700;color:var(--purple)}tbody tr:nth-child(2n){background:#fafbfe}tbody tr:hover{background:var(--purple-soft)}.badge{display:inline-block;padding:2px 8px;border-radius:var(--radius);font-size:.75rem;font-weight:600}.badge-green{background:var(--blue-badge);color:#fff}.badge-red{background:var(--coral);color:#fff}.badge-yellow{background:#fff3cd;color:#856404}.badge-gray{background:var(--gray-btn);color:#4a4a55}.alert{padding:12px 16px;border-radius:6px;margin-bottom:16px;font-weight:600}.alert-warning{background:#fff8e8;color:#8a6d1b;border:1px solid #f3e2a8}.alert-danger{background:#fdeeee;color:#a14b4b;border:1px solid #f5c6c6}.alert-success{background:var(--purple-soft);color:var(--purple);border:1px solid #dcccf8}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(180deg,var(--purple-soft) 0%,var(--bg) 45%)}.login-box{background:var(--bg-card);padding:40px;border-radius:12px;width:400px;max-width:90vw;border:1px solid var(--border);box-shadow:0 8px 32px #7847e114}.login-box h1{text-align:center;margin-bottom:24px;color:var(--purple)}.error-msg{color:var(--coral-hover);font-size:.85rem;margin-bottom:12px}.tabs{display:flex;gap:0;margin-bottom:20px}.tabs button{flex:1;padding:8px;border:1px solid var(--border);background:var(--gray-btn);color:var(--text-muted);cursor:pointer;font-size:.9rem;font-weight:600}.tabs button:first-child{border-radius:var(--radius) 0 0 var(--radius)}.tabs button:last-child{border-radius:0 var(--radius) var(--radius) 0}.tabs button.active{background:var(--purple);color:#fff;border-color:var(--purple)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:768px){.grid-2{grid-template-columns:1fr}}.inline-form{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.inline-form .form-group{flex:1 1 140px;min-width:0;margin-bottom:0}.inline-form .form-group-action{flex:0 0 auto}.inline-form .form-group-action .btn,.inline-form>.btn{flex:0 0 auto;white-space:nowrap;min-height:38px}.student-list .student{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}.lesson-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:4px}.lesson-timer-wrap{display:flex;align-items:baseline;gap:8px}.lesson-timer{font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:700;color:var(--purple);letter-spacing:.04em}.demo-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.link-list a{display:block;padding:8px 12px;background:#eaf6fc;color:var(--blue-badge);border-radius:var(--radius);margin-bottom:6px;text-decoration:none}.material-item{margin-bottom:12px;padding:12px;background:var(--purple-soft);border-radius:6px}.exceeded{color:var(--coral-hover);font-weight:700}.lang-switcher{padding:6px 10px;border-radius:var(--radius);border:1px solid var(--border);font-size:.85rem;background:#fff;color:var(--text);cursor:pointer}.lang-switcher.compact{padding:4px 8px;font-size:.8rem}.table-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.table-actions .btn{padding:4px 10px;font-size:.78rem}.table-wrap{overflow-x:auto}table.table{width:100%}tbody tr.selected{background:var(--purple-soft)}.checkbox-list{display:flex;flex-direction:column;gap:8px}.checkbox-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:#fff}.checkbox-item:hover{background:var(--purple-soft)}.checkbox-item input[type=checkbox],.form-group input[type=checkbox]{width:auto;height:16px;margin:0;accent-color:var(--purple);cursor:pointer}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1410288c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.viewer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;display:flex;align-items:center;justify-content:center;z-index:2000}.viewer-modal{width:min(1280px,98vw);height:min(96vh,980px);background:#0e0c18;border-radius:8px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 12px 40px #32285a2e}.viewer-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;color:#fff;flex-shrink:0}.viewer-body{flex:1;min-height:0;position:relative;background:#0e0c18}.viewer-iframe{position:absolute;top:0;right:0;bottom:0;left:0;border:0;width:100%;height:100%;background:#0e0c18}.viewer-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#ffffffb3}.muted{color:var(--text-muted);font-size:.9rem;margin-bottom:12px}.filter-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.filter-bar .form-group{margin-bottom:0;min-width:150px}.pills{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.card-head .pills{justify-content:flex-end}.pill{border:1px solid var(--border);background:#fff;color:var(--text-muted);border-radius:999px;padding:4px 10px;font-size:.8rem;font-weight:600;cursor:pointer}.pill.active{background:var(--purple);color:#fff;border-color:var(--purple)}.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 16px;font-size:.9rem}.breadcrumb button{background:none;border:none;color:var(--purple);cursor:pointer;font-weight:600;padding:0}.breadcrumb .sep{color:var(--text-muted)}.stats-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0}.stat-box{background:var(--purple-soft);border-radius:8px;padding:12px 14px}.stat-box .value{font-size:1.2rem;font-weight:700;color:var(--purple)}.stat-box .label{font-size:.78rem;color:var(--text-muted);font-weight:600}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.card-head h2{margin-bottom:0}.card-actions{display:flex;gap:8px;flex-wrap:wrap}.usage{display:flex;align-items:center;gap:8px}.usage-bar{flex:1;min-width:64px;height:8px;background:var(--gray-btn);border-radius:4px;overflow:hidden}.usage-bar span{display:block;height:100%;background:var(--purple)}.usage-bar span.over{background:var(--coral)}.usage-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}tbody tr.clickable{cursor:pointer}tbody tr.clickable:focus,tbody tr.clickable:focus-visible{outline:2px solid var(--purple);outline-offset:-2px}.stepper{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.step{border:1px solid var(--border, #ddd);background:#fff;border-radius:999px;padding:8px 14px;font-size:.85rem;cursor:pointer;color:var(--text-muted)}.step.active{background:var(--purple);color:#fff;border-color:var(--purple);font-weight:600}.step.done{background:var(--purple-soft);color:var(--purple);border-color:var(--purple)}tbody tr.row-license-blocked{background:#fde8e8}tbody tr.row-license-blocked:hover{background:#f8d0d0}tbody tr.row-license-paused{background:#fff6d6}tbody tr.row-license-paused:hover{background:#ffe9a8}.license-mark{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:700;vertical-align:middle}.license-mark-blocked{background:#c0392b;color:#fff}.license-mark-paused{background:#d4a017;color:#fff}.license-icon{width:12px;height:12px;fill:currentColor;flex-shrink:0}@media(max-width:768px){.stats-row,.usage-grid{grid-template-columns:1fr 1fr}}
