/* INFOtype application layer — monochrome, restrained, desktop-first and touch friendly. */
:root { --it-accent:#1b1b1f; --it-success:#27845a; --it-warning:#a56d17; --it-danger:#b64040; }
button, a, input, select, textarea { touch-action: manipulation; }
button { cursor:pointer; }
button:disabled { opacity:.5; cursor:not-allowed; }
[hidden] { display:none !important; }
.auth-screen { min-height:100dvh; position:relative; display:grid; place-items:center; padding:34px 18px; isolation:isolate; overflow:hidden; background:radial-gradient(ellipse at 12% 10%,#fff 0%,transparent 38%),radial-gradient(ellipse at 95% 90%,#ececef 0%,transparent 42%),#f5f5f7; }
.auth-orb { position:absolute; z-index:-1; border-radius:999px; filter:blur(1px); border:1px solid rgba(255,255,255,.9); }
.orb-a { width:460px;height:460px;right:-170px;top:-185px;background:linear-gradient(135deg,rgba(255,255,255,.7),rgba(225,225,230,.3)); }
.orb-b { width:340px;height:340px;left:-150px;bottom:-155px;background:linear-gradient(140deg,rgba(255,255,255,.85),rgba(225,225,230,.25)); }
.auth-wrap { width:min(100%,440px); }
.auth-brand { margin:0 auto 26px; justify-content:center; }
.auth-card { padding:35px 34px 27px; background:rgba(255,255,255,.89); border:1px solid rgba(255,255,255,.9); border-radius:27px; box-shadow:0 24px 80px rgba(30,30,35,.09),0 2px 8px rgba(30,30,35,.03); backdrop-filter:blur(18px); }
.auth-kicker { color:#898990;font-size:10px;font-weight:750;letter-spacing:.14em; }
.auth-card h1 { margin:10px 0 11px; font-size:clamp(28px,7vw,34px); font-weight:750; line-height:1.12; letter-spacing:-.065em; }
.auth-copy { margin:0 0 27px; color:#73737b; font-size:13px;line-height:1.8; }
.auth-panel { padding:18px; border:1px solid #e9e9ec; background:#fbfbfc; border-radius:17px; }
.field-label { display:block;margin:0 0 7px;font-size:12px;font-weight:700;color:#3a3a40; }
.field-help { font-size:11px;color:#83838b;line-height:1.6;margin:8px 0 13px; }
.input-with-prefix { display:flex;align-items:center;gap:10px;padding:0 13px;height:46px;background:#fff;border:1px solid #e4e4e8;border-radius:11px; }
.input-prefix { flex:0 0 auto;color:#8a8a92;font-size:12px;font-weight:650;border-right:1px solid #e9e9ec;padding-right:10px; }
.input-with-prefix input { min-width:0;width:100%;border:0;outline:0;background:transparent;font-size:14px;box-shadow:none!important; }
.control,.form-control { width:100%;min-height:42px;border:1px solid #e3e3e8;border-radius:10px;background:#fff;color:#202024;padding:10px 12px;outline:none; }
.control:focus,.form-control:focus,.input-with-prefix:focus-within { border-color:#a7a7af;box-shadow:0 0 0 3px rgba(40,40,45,.06)!important; }
textarea.control,textarea.form-control { resize:vertical;min-height:90px; }
.field-spacer { height:14px; }
.btn-full { width:100%;justify-content:center;min-height:44px;margin-top:11px; }
.auth-card .btn-primary { background:#19191d;color:white;border-color:#19191d;box-shadow:0 3px 8px rgba(20,20,25,.12); }
.auth-card .btn-primary:hover { background:#343439; }
.auth-divider { display:flex;align-items:center;gap:14px;color:#a0a0a6;font-size:11px;margin:19px 0 15px; }
.auth-divider:before,.auth-divider:after { content:"";height:1px;flex:1;background:#e6e6e9; }
.passkey-login { min-height:46px!important;margin:0!important;border:1px solid #dedee3!important;background:rgba(255,255,255,.8)!important; }
.auth-passkey-primary { min-height:58px!important;margin:4px 0 0!important;border-radius:14px!important;background:#19191d!important;border-color:#19191d!important;color:#fff!important;font-size:14px!important;font-weight:750!important;box-shadow:0 8px 22px rgba(20,20,25,.14)!important; }
.auth-passkey-primary:hover { background:#343439!important;transform:translateY(-1px); }
.auth-passkey-primary .passkey-symbol { font-size:22px; }
.auth-register-details { margin-top:25px;border-top:1px solid #ededf0;padding-top:15px; }
.auth-register-details summary { display:flex;align-items:center;justify-content:center;gap:5px;cursor:pointer;list-style:none;color:#85858d;font-size:11px;padding:5px; }
.auth-register-details summary::-webkit-details-marker { display:none; }
.auth-register-details summary span { color:#424249;text-decoration:underline;text-underline-offset:3px;font-weight:650; }
.auth-register-details[open] summary { margin-bottom:13px; }
.auth-register-details .auth-panel { padding:15px; }
.auth-security { margin-top:13px!important; }
.passkey-symbol { font-size:19px;line-height:1; }
.text-button { display:block;margin:12px auto 0;padding:5px 8px;background:none;border:0;color:#696970;font-size:11px;text-decoration:underline;text-underline-offset:3px; }
.recovery-button { margin-top:13px; }
.auth-security { display:flex;align-items:center;justify-content:center;gap:7px;margin:24px 0 0;color:#8a8a92;font-size:10px; }
.auth-footer { margin-top:21px;text-align:center;color:#9999a0;font-size:10px; }
.auth-footer span,.app-footer span { margin:0 6px;color:#c3c3c8; }
.mobile-menu { display:none; }
.mobile-nav { display:none; }
.app-footer { text-align:center;padding:26px 4px 10px;color:#97979e;font-size:10px; }
.view-heading { display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:10px 0 24px; }
.view-heading h1 { margin:7px 0 7px;font-size:clamp(25px,2.2vw,34px);font-weight:760;letter-spacing:-.055em;line-height:1.15; }
.view-heading p { margin:0;color:var(--it-muted);font-size:12px;line-height:1.7; }
.view-heading-actions { display:flex;align-items:center;gap:8px;flex-wrap:wrap; }
.action-row { display:flex;align-items:center;gap:8px;flex-wrap:wrap; }
.btn,.btn-primary,.btn-secondary,.btn-danger { display:inline-flex;align-items:center;gap:7px;justify-content:center;white-space:nowrap;min-height:37px;padding:8px 13px;border:1px solid #e3e3e7;border-radius:10px;background:#fff;color:#25252a;text-decoration:none;font-size:11px;font-weight:650;box-shadow:0 1px 2px rgba(20,20,25,.025);transition:background .15s,border-color .15s,transform .15s; }
.btn:hover,.btn-secondary:hover { background:#f8f8fa;border-color:#d3d3d8; }
.btn-primary { color:#fff;background:#1c1c20;border-color:#1c1c20; }
.btn-primary:hover { color:#fff;background:#3a3a40;border-color:#3a3a40; }
.btn-secondary { background:#fff;color:#28282d; }
.btn-danger { color:#a92f2f;border-color:#f0d9d9;background:#fffafa; }
.btn-sm { min-height:30px;padding:6px 9px;font-size:10px;border-radius:8px; }
.btn-quiet { border-color:transparent;background:transparent;box-shadow:none;color:#686870; }
.btn-icon { min-width:34px;padding:6px; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid rgba(60,60,70,.18);outline-offset:2px; }
.page-action { margin-top:10px; }
.stat-card-featured { background:#202024;color:#fff;border-color:#202024; }
.stat-card-featured .stat-topline,.stat-card-featured .stat-foot { color:#c5c5cd; }
.stat-card-featured .stat-foot strong { color:#fff; }
.stat-card-featured .stat-icon { background:rgba(255,255,255,.1);color:#fff; }
.stat-foot { display:flex;gap:4px;flex-wrap:wrap; }
.stat-foot strong { color:#57575f; }
.inline-note { padding:11px 13px;border:1px solid #e9e9ec;border-radius:11px;background:#fbfbfc;color:#777780;font-size:11px;line-height:1.6; }
.empty-state { display:grid;place-items:center;text-align:center;padding:32px 15px;border:1px dashed #dcdce1;border-radius:14px;background:#fcfcfd; }
.empty-symbol { display:grid;place-items:center;width:43px;height:43px;border-radius:14px;background:#f0f0f3;font-size:18px;color:#5a5a62;margin-bottom:10px; }
.empty-state strong { font-size:12px; }
.empty-state p { margin:6px 0 13px;color:#888891;font-size:11px;line-height:1.65;max-width:310px; }
.stack-list { display:grid;gap:9px; }
.list-row { display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--it-line);border-radius:12px;background:#fff;min-width:0; }
.list-row:hover { border-color:#d5d5da; }
.list-row-main { flex:1;min-width:0; }
.list-row-title { font-size:12px;font-weight:700;letter-spacing:-.02em;line-height:1.45;overflow-wrap:anywhere; }
.list-row-sub { margin-top:4px;color:#85858c;font-size:10px;line-height:1.5;overflow-wrap:anywhere; }
.row-actions { display:flex;align-items:center;gap:6px;flex:0 0 auto;flex-wrap:wrap; }
.round-check { display:grid;place-items:center;flex:0 0 19px;width:19px;height:19px;border:1px solid #d1d1d7;border-radius:6px;background:#fff;color:#fff;font-size:11px; }
.round-check.is-done { background:#232327;border-color:#232327; }
.done-text { color:#9999a0;text-decoration:line-through; }
.status-pill { display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:4px 8px;border:1px solid #e6e6eb;border-radius:99px;color:#76767e;background:#fbfbfc;font-size:10px;font-weight:650; }
.status-pill.success { color:#2e7654;border-color:#d4eade;background:#f4fbf6; }
.status-pill.warning { color:#8b661d;border-color:#eee3c9;background:#fffcf4; }
.status-pill.danger { color:#a53d3d;border-color:#f0dada;background:#fff8f8; }
.progress-block { margin-top:11px; }
.progress-labels { display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;color:#777780;font-size:10px; }
.progress-labels strong { color:#2a2a30;font-variant-numeric:tabular-nums; }
.progress-track { height:5px;background:#ededf0;border-radius:99px;overflow:hidden; }
.progress-fill { display:block;height:100%;width:var(--progress,0%);max-width:100%;background:#27272c;border-radius:inherit;transition:width .2s; }
.progress-fill.is-light { background:#92929a; }
.form-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px; }
.form-field { min-width:0;display:grid;gap:6px;align-content:start; }
.form-field.full { grid-column:1/-1; }
.form-field label { font-size:11px;font-weight:700;color:#46464d; }
.form-help { color:#909098;font-size:10px;line-height:1.5; }
.form-actions { display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:18px;flex-wrap:wrap; }
.checkbox-line { display:flex;align-items:center;gap:8px;color:#66666e;font-size:11px; }
.checkbox-line input { accent-color:#26262b;width:15px;height:15px; }
.toolbar { display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap; }
.toolbar-left,.toolbar-right { display:flex;align-items:center;gap:8px;flex-wrap:wrap; }
.inline-select { min-height:34px;padding:6px 10px;border:1px solid #e4e4e8;border-radius:9px;background:white;font-size:11px;color:#4e4e55; }
.week-grid { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px; }
.weekday-cell { text-align:center;padding:7px 0;color:#9898a0;font-size:10px;font-weight:700; }
.weekday-cell:first-child { color:#ad7272; }
.calendar-cell { position:relative;min-height:80px;padding:8px 7px;border:1px solid #ededf0;border-radius:10px;background:#fff;cursor:pointer;text-align:left;overflow:hidden; }
.calendar-cell:hover { border-color:#bcbcc4;background:#fcfcfd; }
.calendar-cell.is-outside { opacity:.43;background:#fafafa; }
.calendar-cell.is-today { border-color:#222227;box-shadow:inset 0 0 0 1px #222227; }
.calendar-cell.is-selected { background:#f2f2f5; }
.calendar-date { display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;color:#4c4c54; }
.calendar-event-count { font-size:9px;color:#7d7d84; }
.calendar-event-mini { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:5px;padding:2px 4px;border-radius:4px;background:#f1f1f4;color:#616169;font-size:9px; }
.calendar-event-mini.assessment { background:#f8f0e1;color:#856628; }
.calendar-event-mini.project { background:#eaf3ee;color:#3f7557; }
.calendar-layout { display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.8fr);gap:16px; }
.school-day-label { color:#85858d;font-size:10px; }
.timetable-edit { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px; }
.timetable-day { min-width:0;border:1px solid #ececf0;border-radius:12px;overflow:hidden;background:#fff; }
.timetable-day-name { padding:10px 7px;text-align:center;background:#f8f8fa;border-bottom:1px solid #ededf0;font-size:11px;font-weight:750; }
.timetable-lesson { margin:6px;padding:8px 6px;border-radius:8px;background:#f6f6f8;text-align:center;min-height:44px;display:grid;place-content:center;gap:2px;cursor:pointer; }
.timetable-lesson:hover { background:#ececf0; }
.timetable-lesson strong { font-size:10px;line-height:1.4;overflow-wrap:anywhere; }
.timetable-lesson small { color:#888891;font-size:9px; }
.grade-big-number { font-size:40px;font-weight:750;letter-spacing:-.06em;font-variant-numeric:tabular-nums; }
.grade-table-wrap { width:100%;overflow:auto; }
.data-table { width:100%;border-collapse:collapse;font-size:11px;min-width:470px; }
.data-table th { padding:10px 9px;background:#f8f8fa;color:#82828a;font-size:10px;font-weight:700;text-align:left;border-bottom:1px solid #e9e9ed;white-space:nowrap; }
.data-table td { padding:12px 9px;border-bottom:1px solid #efeff2;color:#4e4e55;white-space:nowrap; }
.data-table tr:last-child td { border-bottom:0; }
.num { font-variant-numeric:tabular-nums; }
.project-card { padding:18px; }
.project-card-top { display:flex;align-items:center;justify-content:space-between;gap:10px; }
.project-symbol { display:grid;place-items:center;width:34px;height:34px;background:#f0f0f3;border-radius:11px;font-size:17px; }
.project-title { margin:14px 0 6px;font-size:14px;font-weight:750;letter-spacing:-.04em; }
.project-description { margin:0;color:#85858c;font-size:11px;line-height:1.65;min-height:35px; }
.project-meta { display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:15px;color:#888891;font-size:10px; }
.project-footer { display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:15px; }
.project-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px; }
.assessment-card { display:flex;gap:13px;align-items:flex-start;padding:15px;border:1px solid #e9e9ed;border-radius:13px;background:#fff; }
.assessment-main { flex:1;min-width:0; }
.assessment-title { margin:0;font-size:12px;font-weight:750;line-height:1.5; }
.assessment-meta { color:#888891;font-size:10px;margin-top:5px;line-height:1.55; }
.assessment-weight { flex:0 0 auto;display:grid;place-items:center;min-width:44px;min-height:39px;padding:5px 8px;background:#f3f3f5;border-radius:10px;font-size:12px;font-weight:750; }
.file-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px; }
.file-tile { min-width:0;padding:0;overflow:hidden;text-align:left;border:1px solid #e8e8ec;border-radius:13px;background:#fff;transition:transform .15s,border-color .15s; }
.file-tile:hover { border-color:#bcbcc5;transform:translateY(-2px); }
.file-preview-tile { display:grid;place-items:center;height:108px;overflow:hidden;background:linear-gradient(145deg,#f5f5f7,#ededf0);color:#65656e;font-size:24px; }
.file-preview-tile img { width:100%;height:100%;object-fit:cover; }
.file-preview-tile pre { width:100%;height:100%;padding:10px;margin:0;overflow:hidden;color:#666671;font:9px/1.5 ui-monospace,SFMono-Regular,monospace; }
.file-tile-body { padding:10px; }
.file-name { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#34343b;font-size:10px;font-weight:700; }
.file-info { display:flex;justify-content:space-between;gap:6px;margin-top:5px;color:#92929a;font-size:9px; }
.dropzone { display:grid;place-items:center;text-align:center;padding:25px 12px;border:1px dashed #d4d4db;border-radius:14px;background:#fcfcfd; }
.dropzone.is-dragover { background:#f1f1f5;border-color:#909099; }
.dropzone h3 { margin:9px 0 3px;font-size:12px; }
.dropzone p { max-width:450px;margin:0 0 13px;color:#898991;font-size:10px;line-height:1.6; }
.dropzone-icon { display:grid;place-items:center;width:34px;height:34px;background:#efeff2;border-radius:11px;font-size:18px; }
.code-preview { max-height:70vh;overflow:auto;margin:0;padding:17px;background:#17171b;color:#e7e7ed;border-radius:11px;font:12px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre; }
.image-preview { display:block;max-width:100%;max-height:70vh;margin:auto;object-fit:contain;border-radius:10px; }
.stl-stage { width:100%;height:min(60vh,530px);min-height:300px;background:linear-gradient(145deg,#f6f6f8,#ebebef);border-radius:14px;overflow:hidden;position:relative; }
.stl-stage canvas { width:100%;height:100%; }
.file-preview-toolbar { display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap; }
.integration-card { display:flex;align-items:center;gap:13px;padding:15px;border:1px solid #e9e9ed;border-radius:13px;background:#fff; }
.integration-mark { display:grid;place-items:center;flex:0 0 42px;height:42px;border:1px solid #e9e9ed;border-radius:13px;background:#fafafc;font-weight:750;font-size:15px; }
.integration-copy { min-width:0;flex:1; }
.integration-title { font-size:12px;font-weight:750; }
.integration-subtitle { margin-top:4px;color:#898991;font-size:10px;line-height:1.5; }
.integration-actions { display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap; }
.security-item { display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #eeeeF1; }
.security-item:last-child { border-bottom:0; }
.security-icon { display:grid;place-items:center;flex:0 0 36px;height:36px;border-radius:11px;background:#f0f0f3;font-size:16px; }
.security-copy { min-width:0;flex:1; }
.security-copy strong { font-size:11px; }
.security-copy p { margin:3px 0 0;color:#898991;font-size:10px;line-height:1.5; }
.modal-backdrop { position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px;background:rgba(26,26,31,.34);backdrop-filter:blur(8px); }
.modal-card { width:min(100%,630px);max-height:min(90dvh,900px);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.8);border-radius:21px;background:#fff;box-shadow:0 30px 100px rgba(20,20,25,.2);animation:modal-in .18s ease-out; }
.modal-card.modal-wide { width:min(100%,900px); }
@keyframes modal-in { from { opacity:0;transform:translateY(8px) scale(.99); } to { opacity:1;transform:translateY(0) scale(1); } }
.modal-header { display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 23px;border-bottom:1px solid #eeeeF1; }
.modal-header h2 { margin:5px 0 0;font-size:19px;font-weight:750;letter-spacing:-.045em; }
.modal-body { padding:21px 23px 23px;overflow:auto; }
.modal-header .icon-button { border:0;background:#f1f1f4;font-size:19px; }
.toast-stack { position:fixed;right:20px;bottom:20px;z-index:2000;display:grid;gap:8px;width:min(360px,calc(100vw - 30px));pointer-events:none; }
.toast { display:flex;align-items:flex-start;gap:9px;padding:12px 14px;background:rgba(30,30,35,.96);color:#fff;border-radius:12px;box-shadow:0 12px 30px rgba(20,20,25,.17);font-size:11px;line-height:1.6;animation:toast-in .18s ease-out; }
.toast.error { background:rgba(122,39,39,.97); }
.toast.success { background:rgba(34,89,63,.97); }
.toast-dot { flex:0 0 6px;width:6px;height:6px;margin-top:5px;border-radius:50%;background:#d4d4da; }
@keyframes toast-in { from { opacity:0;transform:translateY(7px); } to { opacity:1;transform:translateY(0); } }
#view { min-height:55vh; }
.view-loading { display:grid;place-items:center;min-height:50vh;color:#85858d;font-size:12px; }
.spinner { width:24px;height:24px;border:2px solid #e7e7eb;border-top-color:#2a2a30;border-radius:50%;animation:spin .7s linear infinite;margin-bottom:10px; }
@keyframes spin { to { transform:rotate(360deg); } }
@media (max-width:1280px) { .file-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.calendar-cell{min-height:70px;} }
@media (max-width:980px) { .view-heading{align-items:flex-start;flex-direction:column;}.view-heading-actions{width:100%;}.calendar-layout{grid-template-columns:1fr;}.timetable-edit{grid-template-columns:repeat(5,minmax(0,1fr));}.file-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.auth-card{padding:30px 25px 24px;} }
@media (max-width:680px) {
  .app-shell{padding-bottom:calc(76px + env(safe-area-inset-bottom));}.sidebar{display:none!important;}.main-content{padding:0 12px;}.content-inner{padding:0;}.topbar{min-height:57px;padding:8px 0;gap:8px;}.topbar-left{min-width:0;}.breadcrumbs{font-size:10px;}.topbar-actions{gap:5px;}.search-field{width:min(43vw,185px);min-width:0;height:34px;padding-inline:9px;}.search-field input{font-size:10px;}.mobile-menu{display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;border:1px solid #e5e5e9;border-radius:10px;background:white;}.mobile-nav{position:fixed;z-index:40;right:0;bottom:0;left:0;display:flex;justify-content:space-around;align-items:stretch;gap:2px;padding:7px 10px calc(7px + env(safe-area-inset-bottom));background:rgba(250,250,251,.92);border-top:1px solid #e6e6eb;backdrop-filter:blur(20px) saturate(160%);}.mobile-nav-item{display:flex;flex:1;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;border-radius:10px;background:transparent;color:#92929a;}.mobile-nav-item span{font-size:18px;line-height:1.1;}.mobile-nav-item small{font-size:9px;font-weight:650;}.mobile-nav-item.is-active{color:#202025;background:#eeeeF2;}.view-heading{margin:13px 0 19px;gap:13px;}.view-heading h1{font-size:26px;}.view-heading p{font-size:11px;}.view-heading-actions{gap:6px;}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:13px;}.stat-card{padding:14px;border-radius:15px;}.stat-value{font-size:28px;}.stat-topline{font-size:10px;}.stat-foot{font-size:9px;}.dashboard-grid{gap:11px;}.panel{padding:15px;border-radius:16px;}.panel-header{gap:10px;margin-bottom:15px;}.section-title{font-size:15px;}.panel-subtitle{font-size:10px;}.panel-header-actions{flex-wrap:wrap;}.span-12,.span-8,.span-7,.span-6,.span-5,.span-4,.span-3{grid-column:span 12;}.project-grid{grid-template-columns:1fr;gap:9px;}.project-card{padding:15px;}.project-description{min-height:0;}.file-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}.file-preview-tile{height:90px;}.calendar-cell{min-height:57px;padding:5px 4px;border-radius:7px;}.calendar-date{font-size:10px;}.calendar-event-mini{font-size:8px;padding:2px;}.calendar-event-mini:nth-of-type(n+2){display:none;}.weekday-cell{font-size:9px;padding:5px 0;}.week-grid{gap:3px;}.calendar-layout{gap:10px;}.form-grid{grid-template-columns:1fr;gap:12px;}.form-field.full{grid-column:auto;}.modal-backdrop{align-items:end;padding:0;}.modal-card,.modal-card.modal-wide{width:100%;max-height:92dvh;border-radius:21px 21px 0 0;padding-bottom:env(safe-area-inset-bottom);}.modal-header{padding:17px 18px;}.modal-body{padding:17px 18px 23px;}.auth-screen{padding:22px 13px;}.auth-wrap{max-width:410px;}.auth-brand{margin-bottom:20px;}.auth-card{padding:27px 18px 22px;border-radius:22px;}.auth-copy{margin-bottom:21px;}.auth-panel{padding:14px;}.timetable-edit{grid-template-columns:repeat(2,minmax(0,1fr));}.data-table{min-width:430px;}.list-row{padding:10px;gap:9px;}.row-actions .btn{min-height:31px;}.grade-big-number{font-size:34px;}.integration-card{align-items:flex-start;flex-wrap:wrap;padding:12px;}.integration-actions{width:100%;justify-content:flex-start;padding-left:55px;}.toast-stack{right:12px;bottom:calc(83px + env(safe-area-inset-bottom));}.app-footer{padding-bottom:4px;}.stl-stage{height:48vh;min-height:250px;}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}}

.search-hidden { display:none !important; }

@media (min-width:681px) and (max-width:980px) { .nav-link { font-size:0;gap:0; } .nav-link .nav-icon { font-size:18px; } .brand-name,.brand-caption { display:none; } .profile-name,.profile-meta { display:none; } }
