:root{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:#1f2937;background:#f4f6fa;line-height:1.4}*{box-sizing:border-box}body{margin:0}a{color:#3157c8;text-decoration:none}a:hover{text-decoration:underline}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:24px;background:#172033;color:#fff;padding:12px 22px;box-shadow:0 2px 8px #0002}.brand{font-size:20px;font-weight:800;white-space:nowrap}.ver{font-size:11px;font-weight:600;opacity:.7}.topbar nav{display:flex;gap:5px;flex:1;overflow:auto}.topbar nav a{color:#d9e0ef;padding:8px 10px;border-radius:7px;white-space:nowrap}.topbar nav a.active,.topbar nav a:hover{background:#ffffff18;color:#fff;text-decoration:none}.user{white-space:nowrap;font-size:13px}.user a{color:#fff}.container{max-width:1500px;margin:0 auto;padding:24px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}h1{margin:0 0 20px;font-size:30px}h2{margin:0 0 14px;font-size:20px}h3{margin:14px 0 8px}.panel{background:#fff;border:1px solid #e1e5ed;border-radius:12px;padding:18px;margin:0 0 18px;box-shadow:0 2px 6px #24324a0a}.grid2,.grid4{display:grid;gap:14px;margin-bottom:12px}.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid4{grid-template-columns:repeat(4,minmax(0,1fr))}label{display:block;font-size:13px;font-weight:650;color:#4b5563;margin:0 0 12px}input,select,textarea{width:100%;margin-top:5px;padding:10px 11px;border:1px solid #cfd5df;border-radius:7px;background:#fff;color:#111827;font:inherit}textarea{resize:vertical}.check{display:flex;align-items:center;gap:8px}.check input{width:auto;margin:0}.btn{display:inline-block;border:1px solid #c9d1df;border-radius:7px;padding:9px 14px;background:#fff;color:#24324a;font-weight:650;cursor:pointer}.btn:hover{background:#f6f8fb;text-decoration:none}.btn.primary{background:#3157c8;border-color:#3157c8;color:#fff}.btn.primary:hover{background:#2748aa}.btn.small{padding:5px 9px;font-size:12px}.btn.wide{width:100%;margin-top:10px}.muted{color:#6b7280}.alert{padding:11px 13px;border-radius:8px;margin:0 0 14px}.alert.ok{background:#eaf8ef;color:#146c38;border:1px solid #bfe6cc}.alert.err{background:#fff0f0;color:#a32323;border:1px solid #f0c2c2}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px}.tabs a{padding:7px 11px;border-radius:7px;border:1px solid #d8deea;background:#fff;color:#344054}.tabs a.active{background:#3157c8;color:#fff;border-color:#3157c8}.table-wrap{overflow:auto;background:#fff;border:1px solid #e1e5ed;border-radius:10px;margin-bottom:16px}table{border-collapse:collapse;width:100%;background:#fff}th,td{text-align:left;padding:10px 11px;border-bottom:1px solid #e7eaf0;vertical-align:middle}thead th{background:#f7f8fb;color:#4b5563;font-size:12px;position:sticky;top:0}tbody tr:hover{background:#fbfcfe}.gradebook th:first-child{position:sticky;left:0;background:#fff;z-index:2;min-width:170px}.gradebook thead th:first-child{background:#f7f8fb;z-index:3}.gradebook td,.gradebook th{text-align:center;min-width:85px}.gradebook th:first-child{text-align:left}.gradebook small{display:block;font-size:10px;color:#7c8493;font-weight:400}.badge{display:inline-block;padding:3px 7px;border-radius:999px;background:#eef1f6;font-size:12px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.stats>div{background:#fff;border:1px solid #e1e5ed;border-radius:12px;padding:20px}.stats b{display:block;font-size:32px}.stats span{color:#6b7280}.login-body,.install-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:#eef2f8}.login-card,.install-card{width:min(480px,100%);background:#fff;border:1px solid #dfe4ec;border-radius:14px;padding:26px;box-shadow:0 16px 50px #1c29401a}.install-card{width:min(820px,100%)}.login-card h1,.install-card h1{margin-bottom:2px}.student-list{display:flex;flex-wrap:wrap;gap:8px}.student-list a{padding:8px 10px;background:#f5f7fb;border:1px solid #e2e6ee;border-radius:7px}.count{font-size:12px;background:#eef1f6;border-radius:999px;padding:3px 7px;color:#6b7280}.vault-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.filebtn{position:relative;overflow:hidden}.filebtn input{position:absolute;inset:0;opacity:0;cursor:pointer}.chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.chips span{padding:6px 9px;border-radius:999px;background:#eef2f8}.acc-row{display:grid;grid-template-columns:minmax(220px,1fr) 2fr;gap:12px;align-items:center;border-bottom:1px solid #eceff4;padding:8px 0}.note{border-top:1px solid #e6e9ef;padding:12px 0}.note p{margin:5px 0}.compact{width:auto;min-width:320px}.points{min-width:90px}code{background:#eef1f6;padding:2px 5px;border-radius:4px}hr{border:0;border-top:1px solid #e5e7eb;margin:18px 0}
@media(max-width:900px){.topbar{align-items:flex-start;gap:10px;flex-wrap:wrap}.topbar nav{order:3;width:100%}.user{margin-left:auto}.container{padding:14px}.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:1fr}.gradebook th:first-child{min-width:140px}}
@media(max-width:620px){.grid2,.grid4{grid-template-columns:1fr}.acc-row{grid-template-columns:1fr}.container{padding:10px}.panel{padding:13px}.topbar{padding:9px 11px}h1{font-size:25px}.page-head{align-items:flex-start}.login-card,.install-card{padding:18px}}
.program-tree{padding-bottom:10px}.tree-level{margin:8px 0 20px}.tree-level>h3{font-size:18px;margin:8px 0 10px;color:#25324a}.tree-chapter{border:1px solid #dfe4ec;border-radius:10px;background:#fbfcfe;margin:0 0 10px;overflow:hidden}.tree-chapter>summary{list-style:none;display:flex;align-items:center;gap:9px;cursor:pointer;padding:12px 14px;background:#f3f6fb}.tree-chapter>summary::-webkit-details-marker{display:none}.tree-chapter:not([open]) .tree-toggle{transform:rotate(-90deg)}.tree-toggle{display:inline-block;transition:transform .15s}.tree-chapter .count{margin-left:auto}.tree-lessons{background:#fff}.tree-lesson{display:grid;grid-template-columns:90px minmax(240px,1fr) 145px 145px 80px;gap:10px;align-items:center;padding:10px 14px;border-top:1px solid #e8ebf0}.tree-code{font-weight:800;color:#27324a}.tree-title{font-weight:600}.tree-presentation{font-size:12px;color:#626b79}.tree-actions{text-align:right}.tree-empty{padding:12px 14px;color:#7a8493;border-top:1px solid #e8ebf0}.editor-panel>summary{cursor:pointer;list-style:none;padding:2px 0}.editor-panel>summary::-webkit-details-marker{display:none}.editor-panel[open]>summary{margin-bottom:14px}.editor-body{padding-top:4px}.status-zrealizowany{background:#e9f7ee;color:#17683a}.status-do-powtórzenia{background:#fff1e8;color:#9a4b13}.status-pominięty{background:#f1f1f1;color:#666}.status-przygotowany{background:#eaf0ff;color:#3157c8}
@media(max-width:900px){.tree-lesson{grid-template-columns:75px minmax(180px,1fr) 130px}.tree-presentation{display:none}.tree-actions{grid-column:auto}}
@media(max-width:620px){.tree-lesson{grid-template-columns:70px 1fr}.tree-lesson>div:nth-child(3),.tree-actions{grid-column:2}.tree-code{grid-row:1 / span 3}.tree-actions{text-align:left}}

/* 1.02 — motywy */
.theme-picker{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.theme-picker .btn.active{background:#3157c8;border-color:#3157c8;color:#fff}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.update-meta{display:flex;gap:18px;flex-wrap:wrap;margin:8px 0 14px}.update-meta>div{padding:10px 12px;border:1px solid #e1e5ed;border-radius:8px;background:#f8fafc}.backup-list{margin:8px 0 0;padding-left:20px}.backup-list li{margin:6px 0}.update-form{max-width:760px}.update-form input[type=file]{padding:8px}.danger-note{font-size:13px;color:#7a4a13;background:#fff8e7;border:1px solid #f0dfaa;border-radius:8px;padding:10px 12px}

html[data-theme="dark"]{color-scheme:dark;background:#0f172a}html[data-theme="dark"] body{background:#0f172a;color:#e5e7eb}html[data-theme="dark"] a{color:#8fb0ff}html[data-theme="dark"] .topbar{background:#0b1220;color:#fff;box-shadow:0 2px 8px #0008}html[data-theme="dark"] .topbar nav a{color:#cbd5e1}html[data-theme="dark"] .topbar nav a.active,html[data-theme="dark"] .topbar nav a:hover{background:#ffffff20;color:#fff}html[data-theme="dark"] .panel,html[data-theme="dark"] .stats>div,html[data-theme="dark"] .table-wrap,html[data-theme="dark"] table,html[data-theme="dark"] .login-card,html[data-theme="dark"] .install-card{background:#111827;border-color:#2b374a;color:#e5e7eb}html[data-theme="dark"] h1,html[data-theme="dark"] h2,html[data-theme="dark"] h3{color:#f8fafc}html[data-theme="dark"] label,html[data-theme="dark"] thead th{color:#cbd5e1}html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea{background:#0b1220;border-color:#3a475c;color:#f8fafc}html[data-theme="dark"] input::placeholder,html[data-theme="dark"] textarea::placeholder{color:#778397}html[data-theme="dark"] .btn{background:#182235;border-color:#3a475c;color:#e5e7eb}html[data-theme="dark"] .btn:hover{background:#22304a}html[data-theme="dark"] .btn.primary,html[data-theme="dark"] .theme-picker .btn.active{background:#456ce0;border-color:#456ce0;color:#fff}html[data-theme="dark"] .muted,html[data-theme="dark"] .stats span{color:#94a3b8}html[data-theme="dark"] .tabs a{background:#111827;border-color:#344156;color:#d8e0ed}html[data-theme="dark"] .tabs a.active{background:#456ce0;border-color:#456ce0;color:#fff}html[data-theme="dark"] thead th{background:#172033}html[data-theme="dark"] th,html[data-theme="dark"] td{border-color:#263247}html[data-theme="dark"] tbody tr:hover{background:#162034}html[data-theme="dark"] .gradebook th:first-child{background:#111827}html[data-theme="dark"] .gradebook thead th:first-child{background:#172033}html[data-theme="dark"] .badge,html[data-theme="dark"] .count,html[data-theme="dark"] code,html[data-theme="dark"] .chips span{background:#202c40;color:#dbe4f0}html[data-theme="dark"] .student-list a{background:#172033;border-color:#2b374a}html[data-theme="dark"] .tree-level>h3{color:#dce6f5}html[data-theme="dark"] .tree-chapter{background:#101827;border-color:#2b374a}html[data-theme="dark"] .tree-chapter>summary{background:#172033}html[data-theme="dark"] .tree-lessons{background:#111827}html[data-theme="dark"] .tree-lesson,html[data-theme="dark"] .tree-empty,html[data-theme="dark"] .acc-row,html[data-theme="dark"] .note,html[data-theme="dark"] hr{border-color:#28354a}html[data-theme="dark"] .tree-code{color:#d8e3f7}html[data-theme="dark"] .tree-title{color:#f0f4fa}html[data-theme="dark"] .tree-presentation{color:#9ba7b9}html[data-theme="dark"] .alert.ok{background:#123523;color:#9ee2b8;border-color:#245c3c}html[data-theme="dark"] .alert.err{background:#3a1719;color:#ffb5b5;border-color:#713036}html[data-theme="dark"] .danger-note{color:#f4d58a;background:#332914;border-color:#675328}html[data-theme="dark"] .update-meta>div{background:#172033;border-color:#2b374a}html[data-theme="dark"] .status-zrealizowany{background:#123523;color:#9ee2b8}html[data-theme="dark"] .status-do-powtórzenia{background:#3a2818;color:#f6c58f}html[data-theme="dark"] .status-pominięty{background:#2a2f38;color:#c4c9d1}html[data-theme="dark"] .status-przygotowany{background:#182a54;color:#a8c0ff}
@media(max-width:900px){.settings-grid{grid-template-columns:1fr}}

/* 1.03 — sejf, import programu, wygodniejsza praca */
.top-tools{display:flex;align-items:center;gap:12px;margin-left:auto}.vault-indicator{font-size:12px;padding:5px 8px;border:1px solid #ffffff2b;border-radius:999px;color:#dbe6ff!important;white-space:nowrap}.vault-indicator:hover{text-decoration:none;background:#ffffff12}.vault-indicator[data-state="open"]{border-color:#3f9b67;color:#b9f0cf!important}.vault-indicator[data-state="locked"]{border-color:#8a6f2d;color:#f3df9b!important}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.panel-head h2{margin-bottom:4px}.chapter-edit{margin-left:8px}.import-panel>summary{cursor:pointer;list-style:none}.import-panel>summary::-webkit-details-marker{display:none}.import-panel[open]>summary{margin-bottom:14px}.vault-state-badge{display:inline-block;padding:6px 10px;border-radius:999px;background:#eef2f8;color:#4b5563;font-size:12px;font-weight:700}.vault-state-badge[data-state="open"]{background:#e9f7ee;color:#17683a}.vault-state-badge[data-state="locked"]{background:#fff5d8;color:#856112}.vault-preview{margin-top:14px}.vault-preview .compact{margin:0 0 12px}.gradebook a .student-name{font-weight:700}.gradebook thead a{font-weight:800}.grade-select{min-width:75px}
html[data-theme="dark"] .vault-state-badge{background:#202c40;color:#dbe4f0}html[data-theme="dark"] .vault-state-badge[data-state="open"]{background:#123523;color:#9ee2b8}html[data-theme="dark"] .vault-state-badge[data-state="locked"]{background:#3a3017;color:#f0d88b}
@media(max-width:900px){.top-tools{margin-left:auto}.chapter-edit{margin-left:auto}.tree-chapter>summary{flex-wrap:wrap}}
@media(max-width:620px){.top-tools{width:100%;justify-content:space-between}.topbar nav{order:4}.vault-indicator{font-size:11px}.chapter-edit{width:auto}.panel-head{align-items:flex-start}}

/* 1.04 — bezpieczne ponowne tworzenie lokalnego sejfu */
.btn.danger{background:#a62c2c;border-color:#a62c2c;color:#fff}.btn.danger:hover{background:#8d2323}.btn.danger-outline{border-color:#c96a6a;color:#9c2929;background:transparent}.btn.danger-outline:hover{background:#fff0f0}.password-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.password-row input{min-width:0}.password-row .btn{margin-top:5px;white-space:nowrap}.vault-create[hidden],.vault-actions[hidden]{display:none!important}html[data-theme="dark"] .btn.danger-outline{border-color:#8f5151;color:#ffb5b5}html[data-theme="dark"] .btn.danger-outline:hover{background:#321d22}
