:root{--navy:#071126;--deep:#0b1730;--royal:#12306b;--panel:#ffffff14;--panel-line:#ffffff1f;--text:#fff;--muted:#c9d7ff;--gold:#fde68a;--yellow:#facc15;--green:#22c55e;--blue:#38bdf8;--danger:#ef4444}*{box-sizing:border-box}html,body{background:var(--navy);min-height:100%;color:var(--text);margin:0;font-family:Arial,Helvetica,sans-serif}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.app-shell{background:var(--navy);min-height:100vh}.app{background:linear-gradient(180deg, var(--navy), var(--royal), var(--deep));max-width:430px;min-height:100vh;margin:0 auto;position:relative;box-shadow:0 0 40px #00000040}.wrap{padding:20px 20px 108px}.site-title-block{min-width:0}.site-title-block h1{letter-spacing:0;overflow-wrap:anywhere;margin:0;font-size:40px;line-height:1.06}.subtitle{color:#e5efff;margin:12px 0 18px;font-size:20px;line-height:1.25}.logo{background:#fff;border-radius:28px;justify-content:center;align-items:center;min-height:132px;margin-bottom:16px;padding:12px;display:flex}.logo img{object-fit:contain;width:100%;height:auto;max-height:116px}.install-card{background:#facc1524;border:1px solid #facc1573;border-radius:18px;align-items:center;gap:12px;margin-bottom:14px;padding:14px;display:grid}.install-card strong{color:#fff;font-size:18px;line-height:1.2;display:block}.install-card p{color:#e5efff;margin-top:4px;font-size:14px;line-height:1.4}.install-actions{grid-template-columns:1fr auto;gap:8px;display:grid}.install-actions button{background:var(--yellow);color:#111827;cursor:pointer;border:0;border-radius:12px;min-height:46px;padding:10px 14px;font-weight:800}.install-actions .install-secondary{color:#fff;background:#ffffff24;font-weight:700}.card{background:var(--panel);border:1px solid var(--panel-line);border-radius:24px;margin-top:14px;padding:18px}.hero{background:linear-gradient(135deg,#1e3a8a,#0f172a,#7c4a03);border-radius:28px;min-height:240px}.hero h2,.detail-title{letter-spacing:0;margin:24px 0;font-size:30px;line-height:1.1}.hero p,.hero span,.muted,.gold,.eyebrow{font-size:14px;line-height:1.55}.hero span{margin-top:18px;display:block}h2,h3,p{margin:0}h3{letter-spacing:0;font-size:22px;line-height:1.18}ul{margin:10px 0 0;padding-left:18px}li{margin:6px 0}.eyebrow,.gold{color:var(--gold);font-weight:700}.muted{color:var(--muted);margin-top:10px}.contact-line{color:var(--muted);overflow-wrap:anywhere;margin-top:8px;font-size:14px;line-height:1.45}.course-meta{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.course-audience-pill,.course-time-range{border-radius:999px;padding:7px 10px;font-size:13px;font-weight:800;line-height:1.2}.course-audience-pill{color:#111827;background:#facc15eb}.course-time-range{color:#fff;background:#ffffff1a;border:1px solid #ffffff29}.payment-box{color:#fff;background:#facc151a;border:1px solid #facc1547;border-radius:14px;gap:6px;padding:12px;display:grid}.payment-box p,.payment-box span{color:var(--muted);font-size:13px;line-height:1.45}.checkline{color:var(--muted);grid-template-columns:auto 1fr;align-items:start;gap:10px;font-size:13px;line-height:1.4;display:grid}.checkline input{width:auto;min-height:auto;margin-top:2px}.grid2{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;display:grid}.btn,.save,.danger,.mini{text-align:center;cursor:pointer;border:0;border-radius:16px;justify-content:center;align-items:center;width:100%;min-height:56px;padding:13px 12px;font-weight:700;text-decoration:none;display:inline-flex}.yellow,.save{background:var(--yellow);color:#111827}.green{background:var(--green);color:#fff}.blue{background:var(--blue);color:#fff}.course-open{margin-top:14px}.course-open-coristi{background:var(--yellow);color:#111827}.course-open-direttori{background:var(--blue);color:#071126}.course-open-presidenti{background:var(--green);color:#052e16}.disabled{color:var(--muted);cursor:default;background:#ffffff1f}.danger{background:var(--danger);color:#fff}.back{margin-bottom:12px}.logout{color:#fff;background:#1e293b;margin-top:14px}.form-stack{gap:10px;display:grid}input,textarea,select{color:#fff;background:#ffffff1c;border:0;border-radius:14px;outline:1px solid #0000;width:100%;min-height:46px;padding:12px}textarea{resize:vertical;min-height:88px}input:focus,textarea:focus,select:focus{outline-color:#facc15d9}select option{color:#111}input::placeholder,textarea::placeholder{color:#d6defa}.teacher-avatar{color:#12306b;background:#fff;border-radius:16px;place-items:center;width:84px;height:84px;margin-bottom:10px;font-size:38px;font-weight:800;display:grid}.teacher-photo{background-color:#fff;background-position:50%;background-size:cover;border:2px solid #ffffff73;border-radius:18px;width:96px;height:96px;margin-bottom:10px}.teacher-avatar.small,.teacher-photo.small{border-radius:12px;width:56px;min-width:56px;height:56px;margin-bottom:0;font-size:24px}.admin-teacher-head{grid-template-columns:auto 1fr;align-items:center;gap:10px;display:grid}.file-control,.form-label{color:var(--gold);gap:8px;font-size:13px;font-weight:700;display:grid}.time-fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.color-field{color:var(--gold);gap:8px;font-size:13px;font-weight:700;display:grid}.color-picker-row{grid-template-columns:auto 1fr;align-items:center;gap:10px;display:grid}.color-picker-row input[type=color]{cursor:pointer;background:#ffffff1c;border:1px solid #ffffff29;border-radius:14px;width:56px;min-height:46px;padding:5px}.color-picker-row strong{background:var(--course-bg);border:1px solid var(--course-border);color:var(--course-text);border-radius:12px;min-height:42px;padding:10px 12px}.color-swatches{flex-wrap:wrap;gap:9px;display:flex}.color-swatches button{cursor:pointer;border:2px solid #ffffffb8;border-radius:999px;width:34px;height:34px;padding:0}.color-swatches button.selected{outline:3px solid var(--yellow);outline-offset:2px}.course-color-preview{align-items:center;gap:8px;display:inline-flex}.course-color-preview i{border:2px solid #ffffffb3;border-radius:999px;flex:none;width:18px;height:18px}.file-control input{cursor:pointer;min-height:auto;padding:10px}.compact-file{margin-top:8px}.photo-preview{grid-template-columns:auto 1fr;align-items:center;gap:10px;display:grid}.msg{color:var(--gold);min-height:18px;margin:4px 0 10px;font-size:13px}.hidden{display:none}.tabs{background:#020617f5;border-top:1px solid #ffffff1a;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;padding:10px 4px;display:grid;position:sticky;bottom:0}.tab{min-width:0;color:var(--muted);background:0 0;border:0;place-items:center;gap:4px;padding:2px;font-size:11px;line-height:1.1;display:grid;position:relative}.tab span{min-height:17px;font-size:15px;position:relative}.tab.active{color:#fff;font-weight:700}.tab.notify{color:var(--yellow);background:#facc1529;border-radius:12px;font-weight:800;animation:1.4s ease-in-out infinite message-tab-glow}.tab.notify span{color:var(--yellow);text-shadow:0 0 12px #facc15cc}.tab.notify span:after{background:var(--green);content:"";border:2px solid #020617f5;border-radius:999px;width:9px;height:9px;position:absolute;top:-5px;right:-10px;box-shadow:0 0 14px #22c55ef2}@keyframes message-tab-glow{0%,to{box-shadow:0 0 #facc1500}50%{box-shadow:0 0 18px #facc158c}}@media (prefers-reduced-motion:reduce){.tab.notify{animation:none}}.segmented{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.segmented button,.mini{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff29;border-radius:14px;min-height:42px;font-weight:700}.segmented button.selected{background:var(--yellow);color:#111827}.row-between{grid-template-columns:1fr auto;align-items:center;gap:10px;display:grid}.mini{width:auto;padding:9px 12px}.compact{min-height:42px;margin-top:8px}.message-list{gap:10px;margin-top:12px;display:grid}.bubble{background:#ffffff1a;border-radius:16px;padding:12px}.bubble.docente{background:#facc152e}.bubble.alunno{background:#38bdf829}.bubble-meta{color:var(--gold);gap:2px;margin-bottom:6px;font-size:12px;font-weight:700;display:grid}.bubble p:last-child{color:#fff;font-size:14px;line-height:1.5}.material-row{color:var(--muted);background:#facc151f;border-radius:16px;gap:8px;padding:12px;font-size:14px;display:grid}.material-row strong{color:#fff}.material-row p{color:#fff;line-height:1.45}.admin-row{color:var(--muted);border-top:1px solid #ffffff1f;gap:4px;padding:12px 0;font-size:14px;display:grid}.admin-row:first-of-type{border-top:0}.admin-row strong{color:#fff}.admin-row p{color:#fff;margin-top:4px;line-height:1.45}.admin-row span{overflow-wrap:anywhere}.lesson-card{gap:6px;display:grid}.lesson-list{gap:12px;margin-top:12px;display:grid}.calendar-card{gap:14px;display:grid}.calendar-head{grid-template-columns:minmax(72px,auto) 1fr minmax(72px,auto);align-items:center;gap:8px;display:grid}.calendar-head h3{text-align:center;text-transform:capitalize}.calendar-nav{min-height:42px;padding:8px 10px;font-size:12px}.course-legend{flex-wrap:wrap;gap:8px;display:flex}.course-legend span,.day-lessons span{background:var(--course-bg);border:1px solid var(--course-border);color:var(--course-text);border-radius:8px;font-weight:800}.course-legend span{padding:6px 8px;font-size:12px;line-height:1.2}.course-tone-1{--course-bg:#facc152e;--course-border:#facc1573;--course-text:#fef3c7}.course-tone-2{--course-bg:#38bdf82e;--course-border:#38bdf873;--course-text:#dff6ff}.course-tone-3{--course-bg:#22c55e2e;--course-border:#22c55e73;--course-text:#dcfce7}.course-tone-4{--course-bg:#f871712e;--course-border:#f8717173;--course-text:#fee2e2}.course-tone-5{--course-bg:#818cf833;--course-border:#818cf87a;--course-text:#e0e7ff}.course-tone-6{--course-bg:#2dd4bf2e;--course-border:#2dd4bf73;--course-text:#ccfbf1}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.weekday{color:var(--gold);text-align:center;min-height:20px;font-size:11px;font-weight:800}.calendar-day{background:#ffffff12;border:1px solid #ffffff1a;border-radius:12px;grid-template-rows:auto 1fr;gap:4px;min-height:98px;padding:7px 5px;display:grid;overflow:hidden}.calendar-day.outside{opacity:.38}.calendar-day.has-lessons{background:#ffffff1c;border-color:#facc1580}.day-number{color:#fff;font-size:16px;font-weight:800;line-height:1}.day-lessons{align-content:start;gap:3px;min-width:0;display:grid}.day-lessons span{text-align:center;white-space:normal;word-break:normal;min-height:28px;padding:4px 3px;font-size:10px;line-height:1.05;display:block;overflow:hidden}.day-lessons em{color:var(--gold);font-size:10px;font-style:normal;font-weight:800}.course-edit,.lesson-edit,.teacher-edit{border-top:1px solid #ffffff1f;margin-top:8px;padding-top:10px}.admin-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.admin-actions .compact{width:100%;margin-top:0}.compact-actions{grid-template-columns:auto auto;justify-content:end}@media (min-width:760px){.app{width:100%;max-width:none;box-shadow:none;margin:0}.wrap{width:100%;max-width:1320px;margin:0 auto;padding:104px 36px 112px}.site-header{grid-template-columns:minmax(280px,360px) minmax(0,1fr);align-items:center;column-gap:30px;margin-bottom:18px;display:grid}.site-title-block h1{max-width:760px;font-size:64px}.subtitle{margin-top:14px;font-size:24px}.logo{min-height:164px;margin-bottom:0}.logo img{max-height:140px}.view{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));align-items:start;gap:18px;display:grid}.view>*{margin-top:0}.view>.hero,.view>.logout{grid-column:1/-1}.view>.grid2{grid-column:1/-1;max-width:720px}.view>.calendar-card{grid-column:1/-1}.hero{min-height:300px;padding:30px}.hero h2,.detail-title{font-size:42px}.card{border-radius:20px;padding:22px}.tabs{z-index:20;border-top:0;border-bottom:1px solid #ffffff1a;grid-template-columns:repeat(7,auto);justify-content:center;gap:8px;padding:14px 24px;position:fixed;inset:0 0 auto}.tab{background:#ffffff12;border-radius:14px;min-width:98px;min-height:48px;padding:8px 12px;font-size:13px}.tab.active{background:var(--yellow);color:#111827}.calendar-grid{gap:6px}.calendar-day{min-height:112px;padding:8px}.day-lessons span{padding:4px 6px;font-size:11px}}@media (max-width:360px){.wrap{padding:14px 14px 112px}.site-title-block h1{font-size:34px}.subtitle{font-size:17px}.hero h2,.detail-title{font-size:26px}.tab{font-size:10px}}
