:root{
  --navy:#0b172d;
  --navy2:#172b4c;
  --red:#ef3340;
  --red2:#ff5661;
  --paper:#f4f0e8;
  --ink:#111c31;
  --muted:#697284;
  --line:#ddd9d1;
  --white:#fff;
  --ok:#166534;
  --okbg:#ecfdf3;
  --err:#991b1b;
  --errbg:#fff1f1;
  --warn:#8a5a00;
  --warnbg:#fff8e9;
}
*{box-sizing:border-box}
html{font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper)}
body{margin:0}
a{color:inherit}
h1,h2,h3{font-family:Georgia,'Times New Roman',serif}
.studenti-body{min-height:100vh;background:var(--paper)}
.studenti-body:before{content:'';position:fixed;inset:0 0 auto;height:220px;background:linear-gradient(120deg,var(--navy),var(--navy2));z-index:-1}
.studenti-body:after{content:'';position:fixed;inset:0 0 auto;height:220px;opacity:.10;background-image:linear-gradient(#fff2 1px,transparent 1px),linear-gradient(90deg,#fff2 1px,transparent 1px);background-size:76px 76px;z-index:-1}
.studenti-shell{width:min(1120px,calc(100% - 36px));margin:0 auto}
.studenti-shell.narrow{width:min(720px,calc(100% - 36px));padding:42px 0 60px}
.studenti-logo{display:inline-flex;align-items:center;gap:0;font-size:24px;font-weight:800;letter-spacing:-.8px;color:#fff;text-decoration:none;margin:3px 0 18px}
.studenti-logo:before{content:none}
.studenti-logo{font-size:24px}
.studenti-logo:after{content:none}
.card{background:var(--white);border:1px solid var(--line);border-radius:2px;box-shadow:0 18px 55px rgba(7,18,36,.12)}
.auth-card{margin-top:10px;padding:40px;border-top:5px solid var(--red)}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.76rem;font-weight:900;color:#52617a;margin:0 0 12px;display:flex;align-items:center;gap:10px}
.eyebrow:before{content:'';width:28px;height:2px;background:var(--brand-accent,#a7664d)}
.auth-card h1,.dashboard h1,.admin-main h1{font-size:clamp(2.2rem,5vw,3.5rem);line-height:1.02;letter-spacing:-.035em;font-weight:400;margin:0 0 15px;color:var(--navy)}
.auth-card p,.lead{color:var(--muted);line-height:1.7}
.form label{display:block;font-weight:800;margin:18px 0 7px;color:var(--ink)}
.form input,.form select,.form textarea{width:100%;padding:14px 15px;border:1px solid #c8c3ba;border-radius:0;background:#fff;font:inherit;color:var(--ink)}
.form input:focus,.form select:focus,.form textarea:focus{outline:3px solid rgba(239,51,64,.12);border-color:var(--red)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:2px;padding:14px 18px;font:inherit;font-weight:900;text-decoration:none;cursor:pointer;transition:.18s ease}
.button:hover{transform:translateY(-1px)}
.button.primary{background:var(--red);color:#fff}
.button.secondary{background:#fff;color:var(--navy);border:1px solid #aeb7c5}
.button.dark{background:var(--navy);color:#fff}
.button.danger{background:#991b1b;color:#fff}
.button.small{padding:8px 11px;font-size:.82rem}
.button.full{width:100%;margin-top:24px}
.alert{padding:14px 16px;border-radius:0;margin:20px 0;line-height:1.45;border-left:4px solid currentColor}
.alert.error{color:var(--err);background:var(--errbg)}
.alert.success{color:var(--ok);background:var(--okbg)}
.alert.warning{color:var(--warn);background:var(--warnbg)}
.auth-links{text-align:center;margin-top:20px;color:var(--muted)}
.auth-links a{color:var(--navy);font-weight:800;text-decoration:none}
.auth-links a:hover{color:var(--red)}
.hint,.small-note{font-size:.9rem;color:var(--muted);line-height:1.55}
.studenti-topbar{background:linear-gradient(120deg,var(--navy),var(--navy2));border-bottom:4px solid var(--red);color:#fff}
.topbar-inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.topbar-inner .studenti-logo{margin:0}
.userbox{display:flex;align-items:center;gap:18px;color:#c6cfdd;font-size:.92rem}
.userbox a{color:#fff;font-weight:800;text-decoration:none}
.userbox a:hover{color:#ff7a83}
.dashboard,.admin-main{padding:54px 0 72px}
.student-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.02em;color:var(--navy)}
.studenti-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:34px}
.resource-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:26px;background:#fff;border:1px solid var(--line);border-left:5px solid var(--red);border-radius:0;text-decoration:none;color:var(--ink);box-shadow:0 12px 30px rgba(7,18,36,.06);transition:.18s ease}
.resource-card:hover{transform:translateY(-2px);border-color:#b9b3aa;box-shadow:0 18px 40px rgba(7,18,36,.10)}
.resource-card h2{margin:0 0 5px;font-size:1.45rem;font-weight:400;color:var(--navy)}
.resource-card p{margin:0;color:var(--muted);line-height:1.45}
.resource-icon,.file-badge{display:inline-grid;place-items:center;min-width:58px;height:42px;padding:0 10px;border-radius:0;background:#ffe3e5;color:#a31621;font-weight:900;font-size:.78rem;letter-spacing:.04em}
.file-badge.html{background:#e9eef5;color:var(--navy)}
.file-list{display:grid;gap:12px;margin-top:28px}
.file-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--red);border-radius:0;padding:16px 18px;color:var(--ink);text-decoration:none}
.file-row:hover{border-color:#b9b3aa;box-shadow:0 8px 24px rgba(7,18,36,.07)}
.file-row strong{display:block}
.file-row small{display:block;color:var(--muted);margin-top:4px}
.empty{margin-top:28px;padding:26px;border:1px dashed #b9b3aa;color:var(--muted);background:rgba(255,255,255,.72)}
.pagination{display:flex;gap:8px;flex-wrap:wrap;margin-top:26px}
.pagination a{display:grid;place-items:center;min-width:40px;height:40px;border:1px solid var(--line);background:#fff;color:var(--navy);text-decoration:none;font-weight:800}
.pagination a.active{background:var(--red);color:#fff;border-color:var(--red)}
code{background:#ebe7df;padding:.15em .4em;border-radius:2px}

/* Area amministratore */
.admin-nav{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.admin-nav a{color:#fff;text-decoration:none;font-weight:800;font-size:.9rem}
.admin-nav a:hover{color:#ff7a83}
.admin-nav .logout{padding:9px 12px;border:1px solid #ffffff55}
.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:28px 0 34px}
.stat-card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--red);padding:22px}
.stat-card small{display:block;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:800;font-size:.7rem}
.stat-card strong{display:block;margin-top:9px;font:400 2.1rem Georgia,'Times New Roman',serif;color:var(--navy)}
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:28px}
.admin-panel{background:#fff;border:1px solid var(--line);padding:26px}
.admin-panel h2{margin:0 0 8px;color:var(--navy);font-weight:400;font-size:1.75rem}
.admin-panel p{color:var(--muted);line-height:1.6}
.table-wrap{overflow:auto;margin-top:24px;border:1px solid var(--line);background:#fff}
.admin-table{width:100%;border-collapse:collapse;min-width:760px}
.admin-table th,.admin-table td{padding:13px 14px;border-bottom:1px solid #ece8df;text-align:left;vertical-align:middle}
.admin-table th{background:#f8f5ef;color:#52617a;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}
.admin-table tr:last-child td{border-bottom:0}
.status{display:inline-flex;align-items:center;gap:7px;font-weight:800;font-size:.82rem}
.status:before{content:'';width:8px;height:8px;border-radius:50%;background:#9ca3af}
.status.on{color:#166534}.status.on:before{background:#16a34a}
.status.off{color:#991b1b}.status.off:before{background:#dc2626}
.inline-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.inline-actions form{margin:0}
.search-bar{display:grid;grid-template-columns:1fr auto;gap:10px;margin:20px 0}
.search-bar input{min-height:46px;padding:0 14px;border:1px solid #c8c3ba;font:inherit}
.upload-box{background:#fff;border:1px solid var(--line);border-left:5px solid var(--red);padding:24px;margin-top:24px}
.upload-box h2{margin-top:0}
.upload-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}
.file-admin-row{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid #ece8df}
.file-admin-row:last-child{border-bottom:0}
.muted{color:var(--muted)}
.back-link{display:inline-flex;margin-top:22px;color:var(--navy);font-weight:800;text-decoration:none}
.back-link:hover{color:var(--red)}

@media(max-width:900px){.admin-stats{grid-template-columns:1fr 1fr}.admin-grid{grid-template-columns:1fr}}
@media(max-width:760px){.form-grid,.studenti-grid{grid-template-columns:1fr}.auth-card{padding:26px}.resource-card{grid-template-columns:auto 1fr}.resource-card>b{grid-column:2}.userbox span{display:none}.admin-nav{gap:10px}.admin-stats{grid-template-columns:1fr 1fr}.upload-row,.search-bar{grid-template-columns:1fr}}
@media(max-width:520px){.studenti-shell.narrow{padding-top:28px}.admin-stats{grid-template-columns:1fr}.studenti-logo:after{font-size:21px}.auth-card h1,.dashboard h1,.admin-main h1{font-size:2.35rem}}

/* Due aree: Scuola superiore / Università */
.area-switch{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}
.area-switch a{display:inline-flex;padding:11px 16px;border:1px solid #c8c3ba;background:#fff;color:var(--navy);font-weight:900;text-decoration:none}
.area-switch a.active{background:var(--navy);border-color:var(--navy);color:#fff}
.inline-area-form{display:flex;align-items:center;gap:7px;min-width:250px}
.inline-area-form select,.search-bar select{min-height:42px;padding:0 10px;border:1px solid #c8c3ba;background:#fff;color:var(--ink);font:inherit}
.search-bar{grid-template-columns:1fr minmax(170px,220px) auto}
@media(max-width:760px){.search-bar{grid-template-columns:1fr}.inline-area-form{min-width:220px}}

/* Assegnazioni materiali per singolo studente */
.material-admin-card{border-top:1px solid #ece8df;padding-top:10px;margin-top:10px}
.material-admin-card:first-of-type{border-top:0;padding-top:0}
.assignment-block{padding:0 0 16px 72px}
.assignment-block>strong{display:block;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:#52617a;margin-bottom:8px}
.assignment-list{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.assignment-chip{display:inline-flex;align-items:center;gap:8px;background:#eef2f7;border:1px solid #d5dce6;padding:7px 9px;color:var(--navy);font-size:.82rem}
.assignment-chip button{border:0;background:transparent;color:#991b1b;font-size:1.15rem;line-height:1;cursor:pointer;font-weight:900;padding:0 2px}
.assignment-controls{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:8px;max-width:620px;margin-top:10px}
.assignment-controls select{min-height:40px;padding:0 10px;border:1px solid #c8c3ba;background:#fff;color:var(--ink);font:inherit}
.button:disabled{opacity:.5;cursor:not-allowed;transform:none}
@media(max-width:760px){.assignment-block{padding-left:0}.assignment-controls{grid-template-columns:1fr}.material-admin-card .file-admin-row{grid-template-columns:auto 1fr}.material-admin-card .file-admin-row form{grid-column:2}}


.footer{padding:65px 0 24px;background:#071224;color:#fff;margin-top:48px}
.footer .wrap{width:min(1180px,calc(100% - 48px));margin:auto}
.footer-grid{display:grid;grid-template-columns:1.4fr .8fr 1fr;gap:60px}
.footer .logo{font-size:25px;font-weight:800;letter-spacing:-.8px;display:inline-flex;align-items:baseline;gap:0;flex-wrap:wrap;text-decoration:none}
.footer .logo-www,.footer .logo-me,.footer .logo-dot{color:var(--brand-accent,#a7664d)}.footer .logo-matematica{color:#fff}
.footer h2{margin:0 0 18px;font-family:Arial,Helvetica,sans-serif;color:#7e8aa0;font-size:11px;text-transform:uppercase;letter-spacing:.15em}
.footer-links{display:grid;gap:10px;font-size:14px}.footer-links a{color:#fff;text-decoration:none}.footer-links a:hover{color:#ff7a83}
.copyright{margin-top:50px;padding-top:20px;border-top:1px solid #ffffff20;color:#748096;font-size:11px;display:flex;justify-content:space-between;gap:12px}
@media(max-width:850px){.footer .wrap{width:min(100% - 32px,680px)}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}}
@media(max-width:520px){.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.copyright{flex-direction:column;gap:10px}}

.studenti-logo .studenti-logo-www,
.studenti-logo .studenti-logo-me{color:var(--brand-accent,#a7664d);}
.studenti-logo .studenti-logo-math{color:#fff;}

/* Colori del logo studenti: il cambio dinamico e' gestito da /js/iconbar.js. */
.studenti-topbar{
  border-bottom-width:4px!important;
  border-bottom-style:solid!important;
  border-bottom-color:var(--brand-accent,#ff0000)!important;
  box-shadow:none!important;
  animation:none!important;
}
.studenti-logo .studenti-logo-www,
.studenti-logo .studenti-logo-me{
  color:var(--brand-accent,#ff0000)!important;
  animation:none!important;
}
.studenti-logo .studenti-logo-math{
  color:#fff!important;
  animation:none!important;
}
.footer .logo-www,
.footer .logo-dot,
.footer .logo-me{
  color:var(--brand-accent,#ff0000)!important;
  animation:none!important;
}
.footer .logo-matematica{
  color:#fff!important;
  animation:none!important;
}

/* Statistiche accessi amministratore */
.stats-three{grid-template-columns:repeat(3,1fr)}
.stats-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}
.table-subline{display:block;margin-top:4px;color:var(--muted);font-weight:400;word-break:break-all}
.compact-table{min-width:520px}
.visit-chart{display:grid;gap:11px;margin-top:22px}
.visit-bar-row{display:grid;grid-template-columns:58px 1fr 54px;gap:12px;align-items:center;font-size:.86rem;color:var(--muted)}
.visit-bar-row>strong{text-align:right;color:var(--navy)}
.visit-bar-track{height:14px;background:#ece8df;overflow:hidden}
.visit-bar-track i{display:block;height:100%;background:var(--brand-accent,var(--red));min-width:3px}
@media(max-width:900px){.stats-three{grid-template-columns:1fr 1fr 1fr}.stats-columns{grid-template-columns:1fr}}
@media(max-width:650px){.stats-three{grid-template-columns:1fr}.visit-bar-row{grid-template-columns:50px 1fr 42px}}


/* Reset indipendente dei contatori statistiche amministratore */
.stats-three .stat-card{position:relative;display:flex;flex-direction:column;align-items:flex-start}
.stats-three .stat-card strong{width:100%}
.stat-reset-form{margin-top:14px;width:100%;display:flex;justify-content:flex-end}
.stat-reset-form .button{min-width:82px}
