:root{--ink:#403731;--muted:#7c6c62;--paper:#f7f1eb;--white:#fffdfb;--line:#e5d8cf;--gold:#b4866f;--gold-dark:#805b48;--gold-soft:#f0e3d8;--gold-pale:#fbf5ef;--clay:#9f735e;--good:#587460;--warn:#986b45;--shadow:0 14px 35px rgba(112,78,58,.11)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,sans-serif;letter-spacing:.005em}a{color:inherit}.top{min-height:74px;background:var(--white);border-bottom:3px solid var(--gold);display:flex;align-items:center;padding:0 max(24px,calc((100vw - 1300px)/2));gap:28px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none}.mark{width:34px;height:38px;border-radius:8px 8px 13px 13px;background:var(--gold);border:1px solid #a4755f;position:relative}.mark:before{content:'T';position:absolute;left:8px;top:5px;font:700 21px Georgia;color:#fffaf4}.mark:after{content:'G';position:absolute;right:5px;bottom:4px;font:700 15px Georgia;color:#f6e8dc}.brand b{font-size:18px}.brand small{display:block;margin-top:3px;color:var(--muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.nav{display:flex;gap:22px;margin-left:15px}.nav a{text-decoration:none;padding:27px 2px 23px;border-bottom:3px solid transparent;color:var(--muted);font-size:14px}.nav a.active{border-color:var(--gold);color:var(--gold-dark);font-weight:bold}.profile{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13px}.avatar{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:var(--gold-soft);border:1px solid #dfc8b8;color:var(--gold-dark);font-weight:bold}.logout{margin-left:8px;color:var(--gold-dark);font-size:13px;text-decoration:none}.wrap{max-width:1300px;margin:auto;padding:32px 25px 55px}.crumb{color:var(--muted);font-size:13px;margin-bottom:14px}.crumb b{color:var(--gold-dark)}h1,h2{font-family:Georgia,serif}h1{font-size:34px;margin:0 0 8px}h2{font-size:21px;margin:0 0 5px}.lead{margin:0;color:var(--muted);font-size:15px;line-height:1.5}.row{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:25px}.btn{border:1px solid #d5b4a0;background:var(--gold-pale);color:var(--gold-dark);padding:10px 13px;border-radius:8px;font-weight:bold;text-decoration:none;cursor:pointer;font-size:14px;display:inline-block}.btn.primary{background:var(--gold-dark);border-color:var(--gold-dark);color:#fffdfb}.btn.danger{background:#c0392b;border-color:#c0392b;color:#fff}.btn.small{padding:6px 10px;font-size:12px}.notice{background:var(--gold-soft);border-left:4px solid var(--gold);border-radius:8px;padding:14px 16px;line-height:1.5;font-size:14px;margin-bottom:20px}.notice-error{background:#fdecea;border-left-color:#c0392b;color:#8b1a1a}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.card,.panel{background:var(--white);border:1px solid var(--line);border-radius:13px;box-shadow:0 4px 18px rgba(112,78,58,.04)}.card{padding:19px}.label{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:bold}.value{font-size:30px;font-weight:bold;letter-spacing:-.04em;margin:9px 0 4px}.value small,.muted{font-size:13px;color:var(--muted);font-weight:normal;letter-spacing:0}.progress{height:7px;border-radius:8px;background:#eee5de;overflow:hidden;margin-top:14px}.progress span{display:block;height:100%;background:var(--gold);border-radius:inherit}.progress.good span{background:var(--good)}.two{display:grid;grid-template-columns:1.5fr .85fr;gap:22px}.panel-head{padding:21px 22px 15px;display:flex;justify-content:space-between;gap:14px}.panel-head p{margin:0;color:var(--muted);font-size:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px;min-width:620px}th{text-align:left;padding:12px 18px;background:var(--gold-pale);color:var(--muted);font-size:11px;letter-spacing:.06em;text-transform:uppercase}td{padding:14px 18px;border-top:1px solid var(--line)}tr:hover td{background:#fff9f4}.tag{display:inline-block;border-radius:20px;padding:5px 8px;background:var(--gold-soft);color:var(--gold-dark);font-size:12px;font-weight:bold}.tag.good{background:#e8f0e9;color:var(--good)}.tag.warn{background:#f8eee4;color:var(--warn)}.tag.danger{background:#fdecea;color:#c0392b}.task{padding:15px 21px;border-top:1px solid var(--line);display:flex;gap:10px;line-height:1.4}.task:first-of-type{border-top:0}.icon{width:29px;height:29px;flex:none;display:grid;place-items:center;border-radius:8px;background:var(--gold-soft);color:var(--gold-dark);font-weight:bold}

/* Login */
.login-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 0,#fffdfb 0,transparent 35%),var(--paper)}.login{width:min(910px,100%);display:grid;grid-template-columns:.9fr 1.1fr;background:var(--white);border:1px solid var(--line);border-radius:19px;overflow:hidden;box-shadow:var(--shadow)}.login-aside{background:#eadbd0;padding:48px 42px;display:flex;flex-direction:column;justify-content:space-between}.login-aside h1{font-size:38px;line-height:1.08}.login-aside p{color:#684d3e;line-height:1.55}.login-main{padding:48px 48px 40px}.role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:23px 0}.role{display:block;border:1px solid var(--line);border-radius:10px;padding:14px 9px;text-decoration:none;text-align:center;font-size:13px;background:var(--white);cursor:pointer}.role:hover,.role.selected{border-color:var(--gold);background:var(--gold-pale);color:var(--gold-dark);font-weight:bold}.field{margin:14px 0}.field label{display:block;margin-bottom:6px;font-size:12px;font-weight:bold;color:var(--muted)}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:12px;font:15px Arial;color:var(--ink);background:#fffdfb}select{-webkit-appearance:auto;appearance:auto}textarea{resize:vertical;min-height:80px}input[type=number]{width:120px}.login .btn{width:100%;margin-top:10px;text-align:center}.hint{font-size:12px;line-height:1.5;color:var(--muted);margin-top:18px}.footer{margin-top:20px;color:var(--muted);font-size:12px}

/* Admin actions */
.admin-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.action{display:block;padding:19px;text-decoration:none}.action b{display:block;margin-bottom:5px}

/* Óraválasztó a tanári műszerfalon – osztályfülek + kereső */
.valaszto{background:var(--white);border:1px solid var(--line);border-radius:13px;
          padding:4px 18px 18px;margin-bottom:24px}
.valaszto-fejsor{display:flex;align-items:flex-end;justify-content:space-between;
                 gap:18px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:16px}
.valaszto-fulek{display:flex;flex-wrap:wrap;gap:2px}
.valaszto-fulek .ful{border:0;background:none;cursor:pointer;font:inherit;font-size:13px;
                     color:var(--muted);padding:12px 13px 10px;border-bottom:3px solid transparent;
                     display:flex;align-items:center;gap:6px}
.valaszto-fulek .ful:hover{color:var(--gold-dark)}
.valaszto-fulek .ful.aktiv{color:var(--gold-dark);border-bottom-color:var(--gold);font-weight:bold}
.valaszto-fulek .ful .tag{padding:2px 6px;font-size:10px;background:var(--gold-soft)}
#ora-kereso{width:280px;margin-bottom:8px;padding:8px 11px;font-size:13px}
.valaszto-lista{display:flex;flex-wrap:wrap;gap:7px}
.valaszto-lista .ora{display:inline-flex;align-items:baseline;gap:7px;padding:8px 12px}
/* A display:inline-flex erősebb a hidden attribútum alapértelmezésénél,
   ezért külön ki kell mondani – enélkül a szűrés nem rejt el semmit. */
.valaszto-lista .ora[hidden]{display:none}
.ora-osztaly{font-size:11px;letter-spacing:.04em;opacity:.6;font-weight:bold}
.ora.primary .ora-osztaly{opacity:.75}
.valaszto-tanar{font-weight:normal;opacity:.72}
.valaszto-hiany{color:#c0392b;font-weight:bold}
.valaszto-ures{margin:6px 0 0;font-size:13px;color:var(--muted)}
.valaszto-labjegyzet{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--line);
                     font-size:12px;color:var(--muted);line-height:1.5}
/* Keresés közben a fülek nem döntenek, ezért halványabbak */
.keres-aktiv .valaszto-fulek{opacity:.45}
@media(max-width:700px){
    .valaszto-fejsor{align-items:stretch}
    #ora-kereso{width:100%}
}

/* Feladatleírás – amit a tanár szövegesen ad ki */
.feladat-leiras{margin-top:5px;font-size:12.5px;color:var(--muted);line-height:1.5;
                white-space:pre-wrap;max-width:46ch}

/* Kattintható táblázatsor – az egész sor a fő gombjára visz */
tr.kattinthato{cursor:pointer}
tr.kattinthato:hover td{background:var(--gold-pale)}

/* Tantárgy-szerkesztő a tanári törzsadatoknál */
.tantargy-szerk summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;
                        gap:8px;flex-wrap:wrap;color:var(--muted)}
.tantargy-szerk summary::-webkit-details-marker{display:none}
.tantargy-ceruza{flex:none;color:var(--gold-dark);font-size:11.5px;font-weight:bold;
                 border-bottom:1px dotted currentColor}
.tantargy-szerk[open] summary{margin-bottom:10px}
/* A táblázatcella szűk, ezért a nyitott panel saját szélességet kap –
   enélkül a 19 tantárgy egyetlen hosszú oszlopba szorulna. */
.tantargy-urlap{background:var(--gold-pale);border:1px solid var(--line);
                border-radius:9px;padding:12px 14px;
                width:max-content;max-width:min(520px, 60vw)}
.tantargy-racs{display:grid;grid-template-columns:repeat(3, minmax(130px, 1fr));
               gap:4px 16px;margin-bottom:12px}
@media(max-width:900px){
    .tantargy-urlap{max-width:100%}
    .tantargy-racs{grid-template-columns:repeat(2, minmax(120px, 1fr))}
}
.tantargy-racs label{display:flex;align-items:center;gap:6px;font-size:12.5px;
                     color:var(--ink);cursor:pointer;line-height:1.4}
.tantargy-racs input[type=checkbox]{width:auto;margin:0;flex:none}
.tantargy-gombok{display:flex;align-items:center;gap:12px;flex-wrap:wrap}

/* Student focus */
.student-focus{padding:23px}.score{font-size:42px;font-weight:bold;color:var(--gold-dark)}

/* Forms inside panels */
.form-panel{padding:25px;margin-top:24px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-actions{margin-top:20px;display:flex;gap:10px}

/* Inline score inputs */
td input[type=number]{width:80px;padding:8px;text-align:center}
td input[type=text]{width:100%;padding:8px}

/* Responsive */
@media(max-width:850px){.login{grid-template-columns:1fr}.login-aside{padding:32px}.login-main{padding:34px 26px}.grid{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}.nav{display:none}.form-row{grid-template-columns:1fr}}
@media(max-width:520px){.wrap{padding:24px 15px}.grid,.admin-actions{grid-template-columns:1fr}.row{align-items:flex-start;flex-direction:column}.profile span,.logout{display:none}.role-grid{grid-template-columns:1fr}.login-aside h1{font-size:31px}}

/* --- Súgó ------------------------------------------------------- */
.valaszto-fulek{display:flex;gap:8px;flex-wrap:wrap}
.sugo-tj{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2px;padding:6px 0}
.sugo-tj a{display:flex;align-items:center;gap:12px;padding:11px 25px;color:var(--ink);
           text-decoration:none;font-size:14.5px;border-bottom:1px solid var(--line)}
.sugo-tj a:hover{background:var(--soft)}
.sugo-tj a span{flex:0 0 27px;height:27px;border-radius:50%;background:var(--soft);
                border:1px solid var(--line);color:var(--gold-dark);font-size:12.5px;
                font-weight:700;display:flex;align-items:center;justify-content:center}
.sugo-torzs{padding:18px 25px 22px}
.sugo-pontok{margin:0 0 16px;padding-left:20px;max-width:70ch}
.sugo-pontok li{margin-bottom:8px;line-height:1.6}
.sugo-tipp{background:var(--soft);border-left:3px solid var(--gold-dark);
           padding:11px 15px;margin:0 0 18px;font-size:13.5px;color:var(--ink);
           line-height:1.55;max-width:78ch}
.sugo-tipp b{color:var(--gold-dark)}
.sugo-kep{margin:0}
.sugo-kep img{width:100%;max-width:900px;border:1px solid var(--line);
              border-radius:7px;display:block}
.sugo-kep figcaption{font-size:12.5px;color:var(--muted);margin-top:7px;max-width:900px;
                     text-align:center}
.sugo-gyik{border-bottom:1px solid var(--line)}
.sugo-gyik summary{padding:14px 25px;cursor:pointer;font-weight:700;font-size:14.5px;
                   list-style:none}
.sugo-gyik summary::-webkit-details-marker{display:none}
.sugo-gyik summary:before{content:"+";color:var(--gold-dark);font-weight:700;
                          display:inline-block;width:20px}
.sugo-gyik[open] summary:before{content:"–"}
.sugo-gyik summary:hover{background:var(--soft)}
.sugo-gyik > div{padding:0 25px 16px 45px;color:var(--muted);font-size:14px;line-height:1.6;
                 max-width:80ch}
@media print{
  .top,.nav,.profile,.valaszto-fulek,.sugo-tj{display:none}
  .sugo-gyik > div{display:block !important}
}
