/* Interface layer. app.css keeps functional tables, utilities and print layouts. */
:root {
  --bg:#f3f6fa; --surface:#fff; --ink:#183244; --text:#183244; --muted:#627586;
  --line:#e0e7ee; --soft:#f5f8fb; --accent:#087f87; --accent-soft:#e7f5f5;
  --navy:#102c3c; --shadow:0 12px 36px #132c3e0a;
  font-size:14px;
}
:root[data-theme="dark"] {
  --bg:#101b28; --surface:#182737; --ink:#e4edf5; --text:#e4edf5;
  --muted:#a7bacb; --line:#2c3e50; --soft:#1d3043; --accent:#50c5c6;
  --accent-soft:#153e48; --navy:#0c2030; --shadow:0 12px 36px #0002;
}
body { background:var(--bg); color:var(--ink); line-height:1.55; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline:3px solid #20a7ba; outline-offset:3px;
}
h1 { font-size:28px; letter-spacing:-.035em; line-height:1.25; }
h2 { font-size:18px; letter-spacing:-.02em; line-height:1.35; }
h3 { font-size:15px; line-height:1.4; }
p { line-height:1.7; }
.btn { min-height:42px; border-radius:10px; font-size:13px; font-weight:650; padding:10px 16px; gap:8px; transition:background .15s,box-shadow .15s,transform .15s; }
.btn:not(.secondary):not(.ghost):not(.danger) { background:#087f87; color:#fff; box-shadow:0 3px 8px #087f8714; }
.btn.secondary { border-color:var(--line); color:var(--ink); }
.btn.secondary:hover { background:var(--soft); filter:none; border-color:#a5bbc8; }
.btn.small { min-height:34px; font-size:12px; padding:6px 11px; }
.btn:disabled { opacity:.5; cursor:not-allowed; box-shadow:none; }
.icon-btn { border:1px solid var(--line); background:var(--surface); border-radius:10px; }
.field label,.form-stack>label,.setup-card label { font-size:13px; font-weight:600; }
input:not([type="checkbox"]):not([type="radio"]),select,textarea {
  min-height:44px; border:1px solid #cfdae4; border-radius:9px; font-size:13px; padding:10px 12px;
  color:var(--ink); background:var(--surface); line-height:1.45;
}
input::placeholder,textarea::placeholder { color:#7c8c9a; }
:root[data-theme="dark"] input,:root[data-theme="dark"] select,:root[data-theme="dark"] textarea { border-color:var(--line); }
input:focus,select:focus,textarea:focus { border-color:var(--accent); box-shadow:0 0 0 3px #148d9a12; }
.form-stack { gap:18px; }
.fields { gap:18px; }
.field small,.field-hint,.sheet-description { font-size:12px; color:var(--muted); }
.form-error { padding:12px 14px; border:1px solid #f0c5c2; background:#fff3f1; border-radius:9px; color:#a8312b; font-size:13px; line-height:1.6; }
.form-error[hidden] { display:none; }
:root[data-theme="dark"] .form-error { color:#ffc3bd; background:#492c30; border-color:#6e3c43; }
.check-field { min-height:38px; font-size:13px; gap:9px; }
input[type="checkbox"] { width:17px; height:17px; accent-color:#087f87; }
.sidebar {
  width:248px; padding:26px 16px 16px; background:#102b3a; border:0;
  --surface:#173645; --ink:#eff7fb; --text:#eff7fb; --muted:#b0c5d0; --line:#ffffff20; --soft:#1b3d4c;
  color:#edf4f8; overflow-y:auto; scrollbar-width:thin; scrollbar-color:#476574 transparent;
}
.sidebar .brand { margin:0 10px 26px; color:#fff; font-size:24px; }
.sidebar .brand small { color:#a5c6d2; letter-spacing:2.3px; font-size:9px; }
.sidebar .brand-symbol { background:#18a7a6; width:38px; height:38px; }
.institution { padding:13px 10px; margin-block-end:25px; border-radius:12px; background:#ffffff07; }
.institution>div { min-width:0; }
.institution strong { display:block; font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:158px; color:#fff; }
.institution small { font-size:11px; color:#adc3cf; }
.institution .avatar { background:#285365; color:#c3eef2; width:34px; height:36px; border-radius:10px; }
.nav-group { margin:0 0 24px; gap:23px; }
.nav-section-title { padding-inline:12px; margin:0 0 7px; color:#8eacbc; font-size:10px; font-weight:700; letter-spacing:1px; text-transform:uppercase; }
.nav-section { display:flex; flex-direction:column; gap:3px; }
.sidebar .nav-item { min-height:43px; color:#c3d3dd; font-size:13px; padding:10px 12px; border-radius:9px; font-weight:500; }
.sidebar .nav-item .icon { width:18px; height:18px; flex:none; opacity:.85; }
.sidebar .nav-item:hover { color:#fff; background:#ffffff0c; }
.sidebar .nav-item.active { color:#fff; background:#157c864d; font-weight:650; box-shadow:inset 3px 0 #46c5cd; }
[dir="rtl"] .sidebar .nav-item.active { box-shadow:inset -3px 0 #46c5cd; }
.sidebar .nav-item.active:after { width:5px; height:5px; background:#50d2ce; }
.sidebar-bottom { border-block-start:1px solid #ffffff12; padding-block-start:14px; }
.install-card { background:none; padding:0; border:0; margin-block-end:8px; }
.install-card .btn { background:#ffffff08; border-color:#ffffff1e; color:#d8ecf5; }
.install-card .btn:hover { background:#ffffff13; color:#fff; }
.app-shell { padding-inline-start:248px; }
.topbar { height:76px; padding-inline:32px; background:var(--surface); border-color:var(--line); gap:15px; }
.crumb { display:flex; flex-direction:column; align-items:flex-start; gap:1px; }
.crumb>span { font-size:10px; text-transform:uppercase; letter-spacing:1px; color:var(--muted); }
.crumb strong { font-size:14px; color:var(--ink); font-weight:650; }
.topbar .profile-mini { padding-inline-start:14px; }
.profile-mini strong { font-size:12px; max-width:150px; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; }
.profile-mini small { font-size:10px; }
.profile-mini .avatar { background:#dcf0ef; color:#1f6972; }
.language-trigger { border-radius:9px; min-height:40px; padding-inline:11px; font-size:12px; }
.workspace-search { display:flex; gap:9px; align-items:center; border:1px solid var(--line); border-radius:9px; background:var(--soft); color:var(--muted); min-height:40px; padding:8px 12px; font-size:12px; }
.workspace-search .icon { width:16px; height:16px; }
.workspace-search kbd { font-size:10px; font-family:inherit; border:1px solid var(--line); border-radius:4px; padding:1px 4px; margin-inline-start:10px; }
.page { max-width:1600px; padding:30px 32px 45px; }
.page-heading { align-items:center; margin-block-end:24px; gap:20px; }
.page-heading h1 { margin:0; }
.page-heading p { font-size:13px; max-width:590px; margin-block-start:6px; }
.page-heading .actions { gap:8px; }
.badge { font-size:11px; border-radius:6px; padding:5px 9px; font-weight:600; }
.badge.green { color:#236047; background:#edf8f1; border-color:#cde8d9; }
.badge.amber { color:#835711; background:#fff5df; border-color:#f0dfb4; }
.card { padding:23px; border-radius:14px; border-color:var(--line); box-shadow:0 3px 12px #182e3c03; }
.card-header { margin-block-end:18px; gap:14px; }
.card-header p { font-size:12px; margin-block-start:4px; }
.stats { gap:16px; margin-block:20px 24px; }
.stat-card { display:flex; align-items:center; gap:14px; border:1px solid var(--line); background:var(--surface); border-radius:12px; padding:20px; color:var(--ink); box-shadow:0 3px 12px #182e3c03; }
a.stat-card:hover { border-color:#a9cbd3; box-shadow:0 5px 18px #152c4010; }
.stat-card strong { font-size:26px; line-height:1.2; font-weight:700; letter-spacing:-.04em; }
.stat-card small { font-size:12px; margin-block-start:5px; display:block; color:var(--muted); }
.stat-icon { width:44px; height:44px; border-radius:11px; }
.workspace-banner { display:flex; align-items:center; justify-content:space-between; gap:25px; padding:24px 28px; background:linear-gradient(110deg,#e8f4f6,#f6fbfc); border:1px solid #cfe4e8; border-radius:14px; }
.workspace-banner h2 { font-size:20px; color:#153b4a; margin-block:8px 5px; }
.workspace-banner p { color:#4f7180; font-size:13px; max-width:560px; margin:0; }
.workspace-banner .overline { color:#2e7b86; font-size:10px; }
.workspace-banner>.btn { flex:none; }
:root[data-theme="dark"] .workspace-banner { background:linear-gradient(110deg,#153741,#1a3041); border-color:#2f525e; }
:root[data-theme="dark"] .workspace-banner h2 { color:#e5f4fa; }
:root[data-theme="dark"] .workspace-banner p { color:#bad4df; }
:root[data-theme="dark"] .workspace-banner .overline { color:#7ed3d9; }
.content-grid { grid-template-columns:minmax(0,1fr) 290px; gap:22px; align-items:start; }
.content-grid>* { min-width:0; }
.schedule-card .toolbar { margin-block-end:17px; gap:14px; }
.schedule-card .field { margin:0; }
.schedule-card h2 { font-size:17px; }
.quick-link { font-size:13px; padding-block:14px; gap:12px; }
.quick-link>.icon:first-child { color:var(--accent); background:var(--accent-soft); box-sizing:content-box; padding:9px; border-radius:9px; width:18px; height:18px; }
.quick-link>.icon:last-child { width:15px; margin-inline-start:auto; }
.agenda-list { display:grid; gap:0; }
.agenda-item { display:flex; gap:12px; align-items:center; padding:14px 0; width:100%; text-align:start; border:0; background:none; border-block-end:1px solid var(--line); }
.agenda-item:last-child { border:0; }
.agenda-time { display:flex; flex-direction:column; width:47px; flex:none; font-size:12px; line-height:1.5; color:var(--ink); font-weight:650; direction:ltr; }
.agenda-time small { color:var(--muted); font-size:10px; font-weight:400; }
.agenda-label { border-inline-start:3px solid #45b4c0; padding-inline-start:13px; min-width:0; }
.agenda-label strong { font-size:12px; display:block; }
.agenda-label small { color:var(--muted); display:block; font-size:11px; margin-block-start:3px; }
.agenda-empty { padding:20px 0; color:var(--muted); font-size:12px; }
.table-wrap { border:1px solid var(--line); border-radius:10px; overflow:auto; }
.responsive-table { font-size:12px; }
.responsive-table th { padding:13px 14px; background:var(--soft); color:var(--muted); font-size:11px; font-weight:650; white-space:nowrap; }
.responsive-table td { padding:14px; border-color:var(--line); vertical-align:middle; }
.responsive-table tbody tr:hover { background:var(--soft); }
.responsive-table td .actions { gap:6px; }
.responsive-table td .btn { min-height:32px; padding:5px 9px; font-size:11px; }
.search-box { border-radius:9px; background:var(--surface); min-width:210px; max-width:340px; }
.search-box input { border:0!important; background:transparent!important; min-height:40px!important; box-shadow:none!important; }
.toolbar { gap:14px; }
.pagination { margin-block-start:18px; font-size:12px; }
.scroll-note { font-size:11px; color:var(--muted); margin-block-start:12px; }
.setup-workspace { display:grid; grid-template-columns:212px minmax(0,1fr); gap:20px; align-items:start; }
.setup-menu { padding:6px 0; position:sticky; top:98px; display:grid; gap:22px; }
.setup-menu h2 { font-size:10px; letter-spacing:.7px; text-transform:uppercase; color:var(--muted); display:flex; align-items:center; gap:7px; margin:0 0 8px; padding-inline:10px; }
.setup-menu h2 .icon { width:14px; height:14px; }
.setup-menu-group { display:flex; flex-direction:column; gap:3px; }
.setup-tab { width:100%; border:1px solid transparent; background:none; text-align:start; padding:9px 11px; font-size:12px; border-radius:8px; color:var(--muted); line-height:1.5; }
.setup-tab:hover { background:var(--surface); color:var(--ink); }
.setup-tab.active { background:var(--surface); border-color:var(--line); color:var(--accent); font-weight:650; box-shadow:0 3px 9px #16344605; }
.setup-content { min-width:0; }
.setup-section-heading { display:flex; gap:15px; align-items:center; justify-content:space-between; margin-block-end:20px; padding-block-end:18px; border-block-end:1px solid var(--line); }
.setup-section-heading h2 { margin:0; font-size:18px; }
.setup-section-heading p { font-size:12px; color:var(--muted); margin-block:5px 0; }
.setup-content .toolbar { margin-block-end:18px; justify-content:space-between; }
.setup-select-mobile { display:none; }
.record-details { display:grid; grid-template-columns:minmax(120px,.7fr) minmax(0,1fr); gap:0; margin:0; }
.record-details dt,.record-details dd { padding:12px 0; margin:0; font-size:13px; border-block-end:1px solid var(--line); }
.record-details dt { color:var(--muted); padding-inline-end:18px; }
.record-details dd { color:var(--ink); overflow-wrap:anywhere; }
.record-identity { display:flex; gap:15px; align-items:center; padding-block:0 20px; margin-block-end:8px; border-block-end:1px solid var(--line); }
.record-identity h3 { margin:0; font-size:20px; }
.record-identity p { margin:4px 0 0; font-size:12px; color:var(--muted); }
.form-section-title { grid-column:1 / -1; border-block-start:1px solid var(--line); padding-block-start:18px; margin-block:6px 0; font-size:12px; font-weight:700; color:var(--ink); }
.sheet { border-radius:18px 0 0 18px; box-shadow:-12px 0 80px #0e233e20; width:510px; background:var(--surface); }
[dir="rtl"] .sheet { border-radius:0 18px 18px 0; }
.sheet.wide { width:730px; }
.sheet-heading { padding:25px 28px 21px; border-block-end:1px solid var(--line); }
.sheet-heading .overline { display:none; }
.sheet-heading h2 { font-size:21px; }
.sheet-content { padding:24px 28px 30px; }
.sheet-actions { position:sticky; bottom:-30px; margin:24px -28px -30px; padding:18px 28px; background:var(--surface); border-block-start:1px solid var(--line); box-shadow:0 -5px 18px #1b344505; }
.finder-search { display:flex; align-items:center; gap:12px; border:1px solid var(--line); padding:4px 12px; border-radius:10px; }
.finder-search input { border:0; box-shadow:none; width:100%; padding-inline:0; }
.finder-results { margin-block-start:16px; }
.finder-item { display:flex; gap:12px; align-items:center; padding:12px 8px; border-block-end:1px solid var(--line); }
.finder-item:hover { background:var(--soft); }
.finder-item>span { flex:1; }
.finder-item strong { display:block; font-size:13px; font-weight:550; }
.finder-item small { display:block; font-size:10px; color:var(--muted); margin-block-start:3px; }
.finder-item>.icon { width:17px; color:var(--accent); }
.schedule-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.schedule-tools { border:1px solid var(--line); border-radius:12px; margin-block-end:20px; background:var(--surface); }
.schedule-tools>summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; cursor:pointer; color:var(--muted); font-weight:600; font-size:12px; list-style:none; }
.schedule-tools>summary::-webkit-details-marker { display:none; }
.schedule-tools>summary .icon { width:16px; transition:transform .15s; }
.schedule-tools[open]>summary .icon { transform:rotate(90deg); }
.schedule-tools .tools-body { padding:0 18px 18px; }
.schedule-tools .tools-body>.actions { padding-block:4px 14px; }
.schedule-tools .view-toolbar { margin:0; border:0; padding:0; }
.schedule-action-footer { border-block-start:1px solid var(--line); padding-block-start:20px; }
.schedule-table { font-size:12px; }
.schedule-table th { font-size:11px; font-weight:600; color:var(--muted); }
.lesson { border-radius:8px; }
.lesson .subject { font-size:11px; }
.lesson .teacher,.lesson .room { font-size:10px; }
.public-shell { background:var(--surface); }
.public-nav { max-width:1320px; min-height:84px; padding-inline:36px; }
.public-nav .links { font-size:13px; gap:26px; }
.public-nav .btn { min-height:40px; }
.landing-main { max-width:1320px; padding-inline:36px; }
.landing-hero { padding-block:56px 70px; gap:45px; }
.landing-hero h1 { font-size:clamp(38px,4.8vw,62px); line-height:1.08; letter-spacing:-.05em; max-width:600px; }
.landing-hero>div>p { font-size:16px; max-width:520px; line-height:1.85; margin-block:22px 28px; }
.landing-hero .overline { color:var(--accent); font-size:11px; letter-spacing:1px; }
.landing-meta { margin-block-start:25px; gap:18px; font-size:12px; }
.landing-visual { padding:25px 0 25px 15px; background:radial-gradient(ellipse,#caedf080,transparent 70%); }
.landing-preview { background:var(--surface); border:1px solid #cce0e7; border-radius:15px; box-shadow:0 24px 60px #1b52641a; padding:20px; transform:rotate(-1deg); }
.mini-header { font-size:12px; padding-block-end:15px; }
.landing-preview .schedule-table td { padding:4px; }
.landing-preview .schedule-table { min-width:520px; }
.landing-preview .lesson { pointer-events:none; }
.visual-floating { font-size:12px; border-radius:10px; box-shadow:0 9px 25px #123c4b12; }
.section-title h2 { font-size:30px; letter-spacing:-.035em; }
.feature-card,.price-card { border-radius:14px; padding:28px; }
.feature-card h3 { font-size:17px; }
.feature-card p,.price-card p { font-size:13px; }
.price-card.featured { border-color:#48a8af; box-shadow:0 8px 30px #0c6c8010; }
.price-card strong { font-size:33px; letter-spacing:-.04em; }
.landing-footer { max-width:1320px; padding:26px 36px; font-size:12px; }
.auth-layout { max-width:1180px; margin:35px auto 65px; min-height:600px; border:1px solid var(--line); border-radius:20px; overflow:hidden; box-shadow:0 18px 45px #192f4109; }
.auth-art { padding:55px 42px; background:linear-gradient(145deg,#102c3c,#164757); color:#fff; }
.auth-art .overline { color:#83d4da; font-size:11px; letter-spacing:1.7px; }
.auth-art h2 { font-size:37px; letter-spacing:-.045em; line-height:1.15; color:#fff; }
.auth-art p { font-size:14px; line-height:1.85; color:#c0d7df; }
.auth-art .hero-art { opacity:.8; }
.auth-content { background:var(--surface); padding:45px 55px; }
.auth-form { max-width:380px; width:100%; }
.auth-form h1 { font-size:28px; letter-spacing:-.03em; }
.auth-form>p { font-size:13px; line-height:1.75; margin-block:10px 25px; }
.auth-account-icon { width:45px; height:45px; border-radius:12px; background:var(--accent-soft); color:var(--accent); margin-block-end:18px; }
.auth-links { gap:15px; margin-block-start:24px; font-size:12px; }
.password-control { display:flex; position:relative; }
.password-control input { padding-inline-end:66px; width:100%; }
.password-toggle { position:absolute; inset-inline-end:7px; inset-block:5px; border:0; background:var(--soft); color:var(--accent); border-radius:6px; padding:5px 8px; font-size:11px; font-weight:650; }
.demo-page { max-width:1040px; padding:48px 32px 65px; }
.demo-page>h1 { font-size:36px; max-width:700px; margin-inline:auto; letter-spacing:-.04em; }
.demo-page>p { font-size:14px; max-width:650px; margin-inline:auto; }
.demo-grid { gap:18px; margin-block:30px; }
.demo-role { text-align:start; border-radius:14px; border:1px solid var(--line); box-shadow:0 5px 20px #15344403; padding:24px; }
.demo-role:hover { border-color:#64b8c1; transform:translateY(-2px); }
.demo-role h2 { font-size:17px; margin-block:18px 7px; }
.demo-role p { font-size:12px; line-height:1.7; color:var(--muted); }
.registration-layout { max-width:1120px; padding:45px 32px 70px; gap:70px; }
.registration-intro h1 { font-size:33px; }
.registration-intro>p { font-size:13px; }
.registration-card { border-radius:17px; border-color:var(--line); }
.step { font-size:13px; }
.steps { margin-block-start:30px; }
.setup-layout { max-width:1120px; gap:65px; }
.setup-card { padding:30px; border-radius:16px; }
.setup-intro h1 { font-size:40px; }
.setup-language { align-items:flex-end; gap:10px; }
.setup-card .field-hint,.setup-check small { font-size:11px; }
.setup-card input:not([type="checkbox"]) { font-size:13px; }
.boot-error { max-width:650px; padding:35px; margin:12vh auto; background:var(--surface); border:1px solid var(--line); border-radius:16px; }
.boot-error h1 { font-size:24px; }
.boot-error p { color:var(--muted); margin-block:16px 24px; }
.boot-error .btn { margin-inline-end:10px; }
.collapse-sidebar .sidebar { width:80px; padding-inline:12px; }
.collapse-sidebar .app-shell { padding-inline-start:80px; }
.collapse-sidebar .nav-section-title { display:none; }
.collapse-sidebar .sidebar .brand { margin-inline:auto; }
.collapse-sidebar .nav-item { justify-content:center; padding-inline:8px; }
.collapse-sidebar .sidebar-bottom { border:0; }
@media(min-width:1600px) { .page { padding-inline:45px; } }
@media(max-width:1200px) {
  .workspace-search span,.workspace-search kbd { display:none; }
  .workspace-search { width:40px; padding:10px; }
  .topbar-right { gap:8px; }
  .content-grid { grid-template-columns:minmax(0,1fr) 260px; }
  .setup-workspace { grid-template-columns:185px minmax(0,1fr); gap:16px; }
  .setup-tab { font-size:11px; padding-inline:9px; }
  .landing-hero { gap:25px; }
  .landing-preview { padding:15px; }
}
@media(max-width:1050px) {
  .profile-mini>span:last-child { display:none; }
  .topbar .profile-mini { border:0; padding-inline-start:0; margin:0; }
  .topbar .demo { display:none; }
  .content-grid { grid-template-columns:minmax(0,1fr); }
  .content-grid>aside.stack { display:grid; grid-template-columns:1fr 1fr; }
  .auth-layout { margin-inline:25px; }
  .auth-content { padding:35px; }
}
@media(max-width:900px) {
  .app-shell,.collapse-sidebar .app-shell { padding-inline-start:0; }
  .sidebar,.collapse-sidebar .sidebar { width:260px; padding:26px 16px 20px; }
  .sidebar .brand { font-size:24px; }
  .sidebar-open .nav-section-title { display:block; }
  .sidebar-open .nav-item { justify-content:flex-start; padding-inline:12px; }
  .sidebar-open .sidebar .brand { margin-inline:10px; }
  .topbar { height:68px; padding-inline:20px; }
  .page { padding:25px 24px 95px; }
  .stats { gap:12px; }
  .stat-card { padding:17px; }
  .public-nav { padding-inline:25px; }
  .public-nav .links { gap:17px; }
  .landing-main { padding-inline:25px; }
  .landing-hero { grid-template-columns:1fr; text-align:center; padding-block:35px; }
  .landing-hero h1,.landing-hero>div>p { margin-inline:auto; }
  .landing-hero .actions,.landing-meta { justify-content:center; }
  .landing-visual { max-width:680px; width:100%; margin:auto; }
  .landing-preview { transform:none; }
}
@media(max-width:700px) {
  :root { font-size:14px; }
  h1 { font-size:24px; }
  .topbar { padding-inline:14px; gap:8px; height:64px; }
  .topbar .actions { gap:10px; }
  .topbar-right { gap:6px; }
  .topbar .icon-btn,.workspace-search { min-width:36px; width:36px; min-height:38px; border:0; background:transparent; padding:8px; }
  .topbar .profile-mini { display:none; }
  .topbar [data-theme-toggle] { display:none; }
  .topbar .language-trigger { min-height:35px; padding-inline:8px; font-size:11px; }
  .topbar .language-trigger .icon { display:none; }
  .crumb>span { display:none; }
  .crumb strong { font-size:13px; max-width:130px; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; }
  .page { padding:22px 16px 100px; }
  .page-heading { flex-direction:column; align-items:stretch; gap:14px; margin-block-end:20px; }
  .page-heading p { font-size:12px; }
  .page-heading .actions { justify-content:flex-start; gap:8px; }
  .page-heading .actions .btn { min-height:39px; font-size:12px; padding:8px 12px; }
  .workspace-banner { padding:20px; flex-direction:column; align-items:flex-start; gap:16px; }
  .workspace-banner h2 { font-size:18px; margin-block-start:7px; }
  .workspace-banner p { font-size:12px; }
  .workspace-banner>.btn { width:100%; }
  .stats { grid-template-columns:1fr 1fr; gap:10px; margin-block:16px 20px; }
  .stat-card { padding:15px 13px; gap:10px; }
  .stat-card .stat-icon { width:34px; height:34px; border-radius:9px; }
  .stat-card .stat-icon .icon { width:17px; }
  .stat-card strong { font-size:23px; }
  .stat-card small { font-size:11px; }
  .card { padding:18px; border-radius:13px; }
  .content-grid { gap:16px; }
  .content-grid>aside.stack { display:flex; gap:16px; }
  .content-grid>aside.stack>.card { margin:0; }
  .card-header h2 { font-size:16px; }
  .schedule-card .toolbar { gap:10px; }
  .schedule-card .toolbar>.actions { width:100%; }
  .setup-workspace { display:block; }
  .setup-menu { display:none; }
  .setup-select-mobile { display:block; width:100%; }
  .setup-select-mobile .field { width:100%; }
  .setup-content .toolbar { flex-direction:column; align-items:stretch; gap:12px; }
  .setup-content .toolbar>.actions { justify-content:space-between; }
  .setup-section-heading { align-items:flex-start; gap:10px; margin-block-end:16px; }
  .setup-section-heading h2 { font-size:17px; }
  .setup-section-heading p { font-size:11px; }
  .setup-section-heading .btn { font-size:11px; min-height:36px; padding:7px 10px; }
  .search-box { max-width:none; min-width:0; width:100%; }
  .responsive-table { border-collapse:separate; border-spacing:0; }
  .responsive-table td { font-size:12px; padding:8px 0; border:0; }
  .responsive-table td:before { font-size:11px; min-width:95px; flex:0 0 38%; padding-inline-end:10px; font-weight:500; color:var(--muted); }
  .responsive-table td>.actions { flex:1; gap:6px; justify-content:flex-start; }
  .responsive-table td .btn { min-height:36px; font-size:11px; }
  .responsive-table tbody tr { padding:16px; background:var(--surface); border:0; border-block-end:1px solid var(--line); border-radius:0; margin:0; }
  .responsive-table tbody tr:last-child { border:0; }
  .responsive-table tbody tr:hover { background:var(--surface); }
  .table-wrap { border-radius:10px; }
  .sheet,.sheet.wide,[dir="rtl"] .sheet { width:100%; border-radius:20px 20px 0 0; max-height:94dvh; }
  .sheet-handle { display:block; margin:10px auto 0; width:36px; height:4px; border-radius:5px; background:#bdc9d3; }
  .sheet-heading { padding:18px 21px; }
  .sheet-heading h2 { font-size:20px; }
  .sheet-content { padding:21px 21px 26px; }
  .sheet-actions { bottom:-26px; padding:16px 21px calc(16px + env(safe-area-inset-bottom)); margin:22px -21px -26px; }
  .sheet-actions .btn { min-height:45px; flex:1; }
  .fields { grid-template-columns:1fr; gap:17px; }
  .field label { font-size:13px; }
  input:not([type="checkbox"]):not([type="radio"]),select,textarea { min-height:46px; font-size:16px; }
  .check-grid { gap:8px; }
  .check-field { min-height:42px; }
  .record-details { grid-template-columns:minmax(95px,.7fr) minmax(0,1fr); }
  .record-details dt,.record-details dd { font-size:12px; }
  .schedule-tools>summary { padding:13px 15px; }
  .schedule-tools .tools-body { padding:0 15px 15px; }
  .schedule-tools .view-toolbar { gap:12px; }
  .view-toolbar>label { flex:1 1 120px; }
  .schedule-action-footer { flex-direction:column; align-items:stretch; gap:14px; }
  .schedule-action-footer>.actions { display:grid; grid-template-columns:1fr 1fr; width:100%; }
  .schedule-action-footer .btn { min-height:42px; padding:9px; font-size:11px; }
  .bottom-nav { min-height:68px; padding:6px 8px calc(6px + env(safe-area-inset-bottom)); border-block-start:1px solid var(--line); background:var(--surface); box-shadow:0 -5px 20px #132f4208; }
  .bottom-nav a { min-height:51px; border-radius:10px; min-width:0; font-size:9px; line-height:1.4; gap:4px; padding:6px 5px; }
  .bottom-nav a.active { color:var(--accent); background:var(--accent-soft); font-weight:650; }
  .bottom-nav a .icon { width:19px; height:19px; }
  .public-nav { padding:17px 20px; min-height:74px; }
  .public-nav .brand { font-size:21px; }
  .public-nav .brand-symbol { width:33px; height:33px; }
  .public-nav .links { gap:10px; }
  .public-nav .links>a:not(.btn) { display:none; }
  .public-nav .btn { min-height:36px; padding:7px 11px; font-size:11px; }
  .public-nav .language-trigger { min-height:36px; padding-inline:7px; }
  .public-nav .language-trigger .icon { display:none; }
  .landing-main { padding-inline:20px; }
  .landing-hero { padding-block:30px 40px; gap:26px; }
  .landing-hero h1 { font-size:40px; }
  .landing-hero>div>p { font-size:14px; line-height:1.8; margin-block:18px 24px; }
  .landing-hero .overline { font-size:10px; }
  .landing-hero .actions { display:grid; grid-template-columns:1fr 1fr; width:100%; gap:10px; }
  .landing-hero .actions .btn { min-height:45px; padding-inline:9px; font-size:12px; }
  .landing-feature-link { grid-column:1 / -1; margin-block-start:3px; justify-content:center; }
  .landing-meta { flex-direction:column; gap:7px; font-size:11px; margin-block-start:20px; }
  .landing-visual { padding:15px 0; overflow:hidden; }
  .landing-preview { padding:15px; overflow:hidden; }
  .landing-preview .table-wrap { overflow:hidden; }
  .landing-preview .schedule-table { min-width:480px; }
  .visual-floating { display:none; }
  .section-title h2 { font-size:26px; }
  .feature-grid,.price-grid { gap:15px; }
  .feature-card,.price-card { padding:24px; }
  .price-card strong { font-size:34px; }
  .landing-footer { flex-direction:column; gap:12px; padding:25px 20px; font-size:11px; text-align:center; }
  .auth-layout { display:flex; flex-direction:column; border:0; border-radius:0; margin:0; box-shadow:none; min-height:auto; }
  .auth-art { display:none; }
  .auth-content { padding:30px 20px 50px; }
  .auth-form { max-width:450px; padding:25px; border:1px solid var(--line); border-radius:17px; box-shadow:0 10px 35px #18364d08; }
  .auth-form h1 { font-size:26px; }
  .auth-form>p { margin-block-end:22px; font-size:12px; }
  .auth-form .btn.full { min-height:46px; }
  .auth-links { flex-direction:column; gap:13px; font-size:12px; }
  .password-toggle { font-size:11px; min-height:36px; }
  .demo-page { padding:28px 20px 45px; }
  .demo-page>h1 { font-size:30px; }
  .demo-page>p { font-size:13px; }
  .demo-grid { grid-template-columns:1fr 1fr; gap:12px; margin-block:25px; }
  .demo-role { padding:18px 15px; }
  .demo-role .stat-icon { width:38px; height:38px; }
  .demo-role h2 { font-size:14px; margin-block:14px 6px; }
  .demo-role p { font-size:11px; }
  .registration-layout { display:block; padding:25px 20px 45px; }
  .registration-intro h1 { font-size:28px; }
  .registration-intro>p { font-size:12px; }
  .steps { display:flex; gap:10px; margin-block:25px; justify-content:space-between; }
  .step { flex-direction:column; font-size:10px; gap:7px; text-align:center; flex:1; align-items:center; }
  .registration-card { padding:23px; }
  .setup-layout { display:flex; flex-direction:column; gap:25px; padding:28px 20px; }
  .setup-intro { width:100%; padding:0; }
  .setup-intro h1 { font-size:30px; }
  .setup-card { width:100%; padding:23px; }
  .setup-card input:not([type="checkbox"]) { font-size:16px; }
  .setup-language select { max-width:155px; font-size:13px; }
  .boot-error { margin:35px 20px; padding:26px; }
}
@media print {
  .workspace-banner,.workspace-search,.setup-menu,.setup-select-mobile,.schedule-tools,.bottom-nav,.sidebar { display:none!important; }
  .app-shell { padding:0!important; }
  .page { padding:0!important; }
  .card { box-shadow:none!important; border-color:#bbb; }
  .schedule-table { font-size:10px; }
  .schedule-table th,.schedule-table td { color:#111!important; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; }
}
.setup-menu { max-height:calc(100dvh - 130px); overflow-y:auto; scrollbar-width:thin; padding-block-end:10px; }
.sidebar .nav-backdrop { background:none; }
