:root{--navy:#10293d;--navy2:#193e54;--teal:#138f83;--teal2:#e9f8f4;--bg:#f4f6f8;--paper:#fff;--line:#e1e8ee;--muted:#66788a;--text:#182b3e;--amber:#a66d20;--amber-bg:#fff4dc;--red:#a73f4b;--red-bg:#fcecee;--shadow:0 4px 20px rgba(23,47,70,.05)}
*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.48 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:var(--teal)}h1,h2,h3,p{margin:0}h1{font-size:29px;line-height:1.15;letter-spacing:-.8px}h2{font-size:19px;letter-spacing:-.25px}h3{font-size:14px}small,.muted{color:var(--muted)}small{font-size:12px}.sub{font-size:12px;color:var(--muted)}.hint{font-size:11px;color:var(--muted)}.overline{font-size:10px;font-weight:800;letter-spacing:1.7px;text-transform:uppercase;color:var(--teal)}.app-shell{display:flex;min-height:100vh}.sidebar{width:250px;flex-shrink:0;background:var(--navy);padding:25px 12px 18px;color:#d3e2ec;display:flex;flex-direction:column;height:100vh;position:sticky;top:0}.brand{padding:4px 12px 27px;display:flex;align-items:center;gap:11px}.brand-icon{display:grid;place-items:center;background:linear-gradient(135deg,#1789a1,#19a38a);width:43px;height:43px;border-radius:12px;font-size:21px}.brand strong{font-size:15px;display:block;color:white}.brand span{font-size:10px;color:#99b0c1;letter-spacing:1px}.nav-label{font-size:10px;letter-spacing:1.4px;color:#789caf;padding:0 13px;margin:11px 0}.nav-btn{display:flex;gap:11px;align-items:center;width:100%;border:0;background:none;color:#bad0df;padding:11px 13px;border-radius:11px;text-align:left;font-weight:550;margin-bottom:3px}.nav-btn:hover{background:#1b3e55;color:white}.nav-btn.active{background:#245066;color:white;font-weight:750}.nav-icon{width:23px;font-size:18px;display:inline-block;text-align:center}.nav-bottom{margin-top:auto;padding:9px}.nav-bottom button{width:100%;color:#e1edf4}.aside-notice{background:#204357;border:1px solid #34566c;border-radius:11px;padding:12px;font-size:11px;color:#b5ccd9}.workspace{flex:1;min-width:0}.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);padding:0 34px;display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar h3{font-size:13px}.top-right{display:flex;align-items:center;gap:12px}.avatar{background:#d8f4ee;color:#0d8377;border-radius:9px;padding:8px 11px;font-size:12px;font-weight:800}.main{max-width:1350px;margin:0 auto;padding:30px 34px 60px}.heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:23px}.heading p{margin-top:8px;color:var(--muted);font-size:13px}.heading-actions{display:flex;gap:8px;flex-wrap:wrap}.card{background:var(--paper);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);padding:20px;min-width:0}.card-title{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-bottom:16px}.grid{display:grid;gap:16px}.two{grid-template-columns:repeat(2,minmax(0,1fr))}.three{grid-template-columns:repeat(3,minmax(0,1fr))}.four{grid-template-columns:repeat(4,minmax(0,1fr))}.btn{border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--text);padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:700;font-size:12px;min-height:37px;text-decoration:none}.btn:hover{background:#f6f9fb}.btn.primary{background:#117d7b;color:#fff;border-color:#117d7b}.btn.primary:hover{background:#086969}.btn.secondary{background:var(--navy);border-color:var(--navy);color:#fff}.btn.danger{color:var(--red);border-color:#efcfd2}.btn.small{padding:6px 10px;min-height:30px;font-size:11px}.btn.iconbtn{width:38px;padding:7px}.btn.full{width:100%}.chip{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;background:#eef2f6;color:#596e82;font-size:10px;font-weight:770;white-space:nowrap}.chip.teal{background:var(--teal2);color:#0a8074}.chip.amber{background:var(--amber-bg);color:var(--amber)}.chip.red{background:var(--red-bg);color:var(--red)}.demo-banner{background:#fff4e0;border:1px solid #efdfbc;border-radius:11px;padding:11px 14px;color:#876321;font-size:12px;margin-bottom:19px}.stat{padding:18px}.stat-icon{width:42px;height:42px;border-radius:12px;background:#e8f7f4;display:grid;place-items:center;font-size:20px}.stat-num{font-weight:830;font-size:28px;letter-spacing:-.7px;margin-top:10px}.stat-label{color:var(--muted);font-size:12px}.list{display:flex;flex-direction:column}.item{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #eaf0f4}.item:last-child{border-bottom:none;padding-bottom:0}.item:first-child{padding-top:0}.item-main{flex:1;min-width:0}.item-main strong{display:block;font-size:13px}.item-main small{display:block;margin-top:3px}.time-box{border-radius:8px;background:#f0f5f8;color:#405f74;padding:8px 10px;white-space:nowrap;font-weight:750;font-size:11px}.callout{background:#edf7f5;border:1px solid #d4edeb;padding:15px;border-radius:12px}.callout.warn{background:var(--amber-bg);border-color:#f0deba}.empty{border:1px dashed #cfdbe3;border-radius:13px;background:#fafcfd;text-align:center;padding:31px;color:var(--muted)}.empty strong{display:block;color:var(--text);margin-bottom:5px}.schedule{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px}.day{background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px;min-height:240px}.day-title{font-weight:780;border-bottom:1px solid var(--line);padding:3px 3px 10px;margin-bottom:10px}.lesson{background:#f0f7fa;border-left:3px solid #7caac4;border-radius:8px;padding:11px 9px;margin-bottom:9px;font-size:12px}.lesson:nth-child(even){background:#eef8f3;border-color:#58b499}.lesson strong{display:block;margin:5px 0}.lesson small{display:block;font-size:10px}.week-control{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.week-control b{font-size:13px;min-width:190px;text-align:center}.photo-frame{border:1px dashed #bdcdd7;border-radius:13px;background:#f7fafc;overflow:hidden;min-height:220px;display:grid;place-items:center}.photo-frame img{width:100%;max-height:650px;object-fit:contain;display:block}.photo-placeholder{text-align:center;padding:37px 15px;color:var(--muted)}.photo-placeholder .big{font-size:36px;display:block;margin-bottom:9px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:13px}.field label{font-size:12px;font-weight:700;color:#506578}.field input,.field textarea,.field select{padding:11px 12px;border-radius:9px;border:1px solid #d4dfe8;background:#fff;width:100%;min-width:0;outline:none}.field input:focus,.field textarea:focus,.field select:focus{border-color:#37ab9d;box-shadow:0 0 0 3px #6acec830}.field textarea{resize:vertical;min-height:85px}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.table-scroll{overflow:auto;border-radius:12px;border:1px solid var(--line)}table{border-collapse:collapse;width:100%;min-width:620px;background:white}th,td{padding:13px;text-align:left;border-bottom:1px solid #edf1f4;font-size:12px}th{font-size:11px;color:#60778c;background:#f8fafb}tr:last-child td{border:0}.doc-row{padding:15px;display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-radius:12px;margin-bottom:11px}.doc-icon{background:#e1f3eb;color:#107955;width:44px;height:44px;display:grid;place-items:center;border-radius:11px;font-size:23px;flex-shrink:0}.doc-info{flex:1;min-width:0}.doc-info strong{overflow-wrap:anywhere}.doc-info small{display:block;margin-top:5px}.actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.modal-bg{position:fixed;inset:0;background:#0b2137b8;display:flex;align-items:center;justify-content:center;z-index:20;padding:16px}.modal{background:white;border-radius:16px;max-width:560px;width:100%;max-height:92vh;overflow:auto;box-shadow:0 20px 70px #0004}.modal-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:18px 20px}.modal form{padding:18px 20px}.modal-foot{display:flex;justify-content:flex-end;gap:9px;border-top:1px solid var(--line);padding:15px 20px}.login-screen{display:grid;place-items:center;min-height:100vh;padding:20px;background:radial-gradient(circle at 10% 5%,#1c5365 0,transparent 32%),radial-gradient(circle at 93% 90%,#226963 0,transparent 27%),#0d2437}.login-panel{background:white;width:100%;max-width:435px;border-radius:20px;padding:34px;box-shadow:0 20px 80px #0004}.login-logo{height:56px;width:56px;display:grid;place-items:center;background:#e9f7f4;border-radius:16px;font-size:30px;margin-bottom:20px}.login-panel h1{font-size:29px}.login-panel p{margin:10px 0 23px;color:var(--muted)}.login-panel .btn{margin-top:6px}.login-foot{margin-top:22px;color:#718698;font-size:11px;text-align:center}.login-demo{border-top:1px solid var(--line);padding-top:20px;margin-top:22px}.divider{border:0;border-top:1px solid var(--line);margin:17px 0}.bottom-nav{display:none}.loading-row{padding:20px;color:var(--muted)}#toast{position:fixed;bottom:23px;left:50%;transform:translateX(-50%);z-index:50;pointer-events:none;max-width:min(90vw,580px);background:#17374b;color:white;padding:12px 18px;border-radius:10px;box-shadow:0 8px 32px #0003;opacity:0;transition:opacity .2s;font-size:13px}#toast.show{opacity:1}.security-note{padding:12px 15px;border-radius:12px;background:#f1f6f8;color:#4d687a;font-size:12px;line-height:1.6}.photo-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.file-pick{position:relative;overflow:hidden}.file-pick input{position:absolute;inset:0;opacity:0;cursor:pointer}.list-button{border:0;background:transparent;text-align:left;padding:0;cursor:pointer;color:var(--text)}.list-button:hover{color:var(--teal)}.loader{text-align:center;padding:100px 20px;color:var(--muted)}
@media(max-width:1100px){.four{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:780px){.sidebar{display:none}.topbar{height:62px;padding:0 17px}.main{padding:21px 16px 110px}.heading{display:block;margin-bottom:20px}.heading h1{font-size:25px}.heading-actions{margin-top:14px}.two,.three{grid-template-columns:1fr}.schedule{grid-template-columns:1fr}.day{min-height:0}.day-title{padding:2px 1px 8px}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:white;border-top:1px solid var(--line);z-index:12;justify-content:space-around;padding:7px 5px max(7px,env(safe-area-inset-bottom));box-shadow:0 -5px 22px #1231}.bottom-nav button{background:none;border:none;min-width:57px;color:#60778a;font-size:10px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0}.bottom-nav button b{font-size:21px;font-weight:400}.bottom-nav button.active{color:#0b8276;font-weight:800}.form-two{grid-template-columns:1fr}.card{padding:17px}.login-panel{padding:25px}.week-control b{min-width:0}.photo-frame{min-height:180px}.topbar .section-label{display:none}}
.mobile-more{display:none}
@media(max-width:780px){.mobile-more{display:flex;position:fixed;bottom:70px;right:10px;width:min(290px,88vw);background:white;box-shadow:0 15px 45px #19304935;border:1px solid var(--line);border-radius:14px;padding:7px;z-index:14;flex-direction:column}.mobile-more button{text-align:left;background:#fff;border:none;border-radius:9px;padding:14px;color:var(--text);font-weight:700}.mobile-more button:hover{background:#eff7f6}}

/* V1.1 · Millores mobile-first */
html{-webkit-text-size-adjust:100%}button,a,label.file-pick{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #49b4a7;outline-offset:2px}
.mobile-day-tabs{display:none}.camera-pick{display:none}
.photo-open{border:0;padding:0;display:block;position:relative;width:100%;background:transparent;cursor:zoom-in}.photo-open img{width:100%;max-height:650px;object-fit:contain;display:block}.photo-open span{position:absolute;bottom:10px;right:10px;border-radius:20px;color:white;background:#142d42dd;padding:8px 13px;font-size:12px;font-weight:700}
.photo-lightbox{position:fixed;inset:0;z-index:100;background:rgba(4,17,28,.96);display:flex;align-items:center;justify-content:center;padding:60px 14px 20px;overscroll-behavior:contain}.photo-lightbox img{display:block;max-width:100%;max-height:100%;object-fit:contain;touch-action:pan-x pan-y pinch-zoom}.photo-close{position:absolute;z-index:1;right:16px;top:max(12px,env(safe-area-inset-top));border:1px solid #ffffff55;background:#fff;color:#152e42;padding:11px 17px;border-radius:25px;font-weight:750;min-height:44px}
@media(max-width:780px){
 .main{padding:18px 13px calc(95px + env(safe-area-inset-bottom))}
 .topbar{height:calc(61px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 14px 0;position:sticky;top:0;z-index:11}
 .heading h1{font-size:24px}.heading p{font-size:13px;margin-top:5px}.heading-actions{margin-top:10px}
 .btn{min-height:44px;padding:10px 13px;font-size:13px}.btn.small{min-height:40px;padding:8px 11px;font-size:12px}
 .card{padding:14px}.stat{padding:13px}.stat-num{font-size:23px}.stat-icon{width:35px;height:35px;font-size:18px}
 .week-control{width:100%;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:7px}.week-control b{min-width:0;font-size:13px}.week-control button[data-week='0']{grid-column:1/-1;width:100%}
 .card-title{flex-wrap:wrap}.photo-frame{min-height:135px}.photo-frame img{max-height:300px}.photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.photo-actions .btn{min-width:0}.photo-actions button[data-publish]{grid-column:1/-1}.camera-pick{display:inline-flex}
 .mobile-day-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:0 0 14px}.mobile-day-tabs button{border:1px solid #d5e4e8;background:white;color:#446477;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1px;border-radius:12px;padding:9px 3px;min-height:62px;font-size:13px;font-weight:800}.mobile-day-tabs button small{font-size:11px;font-weight:500}.mobile-day-tabs button.active{background:#e2f4f1;border-color:#14978a;color:#086d65}
 .schedule{grid-template-columns:1fr}.schedule .day{display:none}.schedule .day.selected-mobile{display:block}.day{padding:14px;min-height:0}.lesson{padding:13px 11px;font-size:14px}.lesson small{font-size:12px}
 .bottom-nav{height:calc(67px + env(safe-area-inset-bottom));padding:5px 5px env(safe-area-inset-bottom);align-items:stretch;gap:3px}.bottom-nav button{width:20%;min-width:0;min-height:54px;font-size:10px;justify-content:center;gap:0;border-radius:10px;padding:4px 1px}.bottom-nav button b{font-size:20px}.bottom-nav button span{white-space:nowrap}.bottom-nav button.active{background:#e8f8f3;color:#086e66}.mobile-more{bottom:calc(75px + env(safe-area-inset-bottom));right:9px}
 .modal-bg{align-items:flex-end;padding:0;z-index:30}.modal{border-radius:18px 18px 0 0;max-height:calc(96dvh - env(safe-area-inset-top));padding-bottom:env(safe-area-inset-bottom)}.modal-head{position:sticky;top:0;background:white;z-index:1;padding:14px 16px}.modal form{padding:15px 16px}.modal-foot{position:sticky;bottom:0;background:white;padding:12px 16px;flex-wrap:wrap}.modal-foot .btn{flex:1}.modal-foot .danger{flex:0 0 100%}
 .field input,.field textarea,.field select{font-size:16px;min-height:45px}input[type=file]{font-size:14px}
 .doc-row{display:grid;grid-template-columns:44px minmax(0,1fr);gap:9px;padding:12px}.doc-row .actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.doc-row .actions .btn{width:100%}
 .login-screen{padding:16px}.login-panel{padding:24px 20px;border-radius:17px}.login-panel h1{font-size:26px}
 .item{align-items:flex-start}.time-box{padding:8px;font-size:11px}
 #toast{bottom:calc(78px + env(safe-area-inset-bottom));width:calc(100vw - 24px);max-width:420px;text-align:center}
}
@media(max-width:350px){.main{padding-left:10px;padding-right:10px}.bottom-nav button{font-size:9px}.top-right{gap:5px}.topbar{padding-left:10px;padding-right:10px}.chip{padding:4px 6px}}


/* alpha06 v2 · Identitat visual graphite / electric blue
   Només presentació: no altera els permisos ni la lògica de l'aplicació. */
:root {
  color-scheme:dark;
  --navy:#090f1d;
  --navy2:#121e33;
  --teal:#63aaff;
  --teal2:#122b48;
  --bg:#090e18;
  --paper:#121d2e;
  --line:#27354b;
  --muted:#a0aec3;
  --text:#f1f6ff;
  --amber:#ffd08a;
  --amber-bg:#342718;
  --red:#ff9bab;
  --red-bg:#371d29;
  --shadow:0 14px 40px rgba(0,0,0,.20);
  --blue:#448dff;
  --blue-glow:rgba(66,146,255,.22);
  --surface-low:#0e1726;
}
html{background:var(--bg);scroll-behavior:smooth}
body{
  background:
    radial-gradient(ellipse 64% 54% at 92% -16%,rgba(31,92,171,.13),transparent 72%),
    linear-gradient(165deg,#0b1120 0%,#090e18 62%,#0c1220 100%);
  color:var(--text);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
}
::selection{background:#387dd0;color:#fff}
a{color:#81b8ff}
a:hover{color:#b6d6ff}
small,.muted,.sub,.hint{color:var(--muted)}
.sub{color:#a7b5c9}
h1,h2,h3{color:#f3f7ff}
h1{font-weight:820;letter-spacing:-1.15px}
h2{letter-spacing:-.5px;font-weight:750}
.overline{color:#8cc2ff;font-size:10px;letter-spacing:1.6px;font-weight:850}
.app-shell{background:transparent}
.sidebar{
  width:264px;
  padding:25px 14px 18px;
  background:linear-gradient(180deg,#0a1425 0%,#0b1220 55%,#0a111e 100%);
  border-right:1px solid #21314a;
  box-shadow:10px 0 45px rgba(0,0,0,.07);
  color:#d2deee;
}
.brand{padding:7px 11px 32px;gap:13px}
.brand-icon{
  width:47px;height:47px;border-radius:15px;
  background:linear-gradient(145deg,#347ce9,#143365 78%);
  border:1px solid rgba(153,200,255,.3);
  box-shadow:0 8px 25px rgba(43,113,230,.26),inset 0 1px 0 rgba(255,255,255,.19);
  font-size:23px;
}
.brand strong{font-size:20px;letter-spacing:-.8px;font-weight:830}
.brand span{color:#7f98b9;font-size:9px;letter-spacing:1.25px}
.nav-label{color:#6980a0;letter-spacing:1.9px;font-size:9px;font-weight:800;margin:13px 0 12px}
.nav-btn{
  border:1px solid transparent;
  border-radius:12px;
  color:#9cacc5;
  font-size:13px;
  font-weight:620;
  margin-bottom:5px;
  min-height:45px;
  padding:10px 13px;
  transition:background .17s ease,color .17s ease,border-color .17s ease,transform .17s ease;
}
.nav-btn:hover{background:rgba(70,116,183,.12);color:#f4f8ff;transform:translateX(2px)}
.nav-btn.active{
  color:#f6f9ff;
  background:linear-gradient(92deg,#184480 0%,rgba(36,73,127,.36) 100%);
  border-color:rgba(91,151,249,.3);
  box-shadow:inset 3px 0 #5ca6ff,0 5px 17px rgba(0,0,0,.10);
  font-weight:780;
}
.nav-icon{font-size:18px}
.nav-bottom{padding:7px}
.nav-bottom .nav-btn{color:#b4c6dd}
.aside-notice{
  background:linear-gradient(160deg,#101f35,#101b2e);
  border:1px solid #263d5c;
  border-radius:14px;
  padding:15px 13px;
  color:#a7b9d1;
  line-height:1.65;
}
.workspace{position:relative;isolation:isolate}
.workspace:before{
  content:"";position:absolute;pointer-events:none;z-index:-1;
  width:min(50vw,600px);height:360px;right:0;top:0;
  background:radial-gradient(ellipse at 70% 0,rgba(34,99,193,.09),transparent 72%);
}
.topbar{
  height:76px;
  padding:0 36px;
  position:sticky;top:0;z-index:10;
  background:rgba(10,17,29,.89);
  border-bottom:1px solid #24334a;
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
}
.topbar h3{font-size:13px;color:#dce8fa;font-weight:720;letter-spacing:.12px}
.top-right{gap:13px}
.avatar{
  color:#dceaff;
  background:linear-gradient(140deg,#173d75,#234b82);
  border:1px solid #3266a6;
  border-radius:11px;
  padding:9px 12px;
  box-shadow:0 5px 13px #0003;
}
.main{max-width:1430px;padding:37px 38px 80px}
.heading{margin-bottom:27px;align-items:center}
.heading .overline{
  display:inline-flex;align-items:center;
  padding:6px 10px;
  border-radius:8px;
  background:rgba(57,120,207,.12);
  border:1px solid rgba(75,146,246,.19);
  margin-bottom:12px;
}
.heading h1{font-size:clamp(26px,2.6vw,35px);line-height:1.13}
.heading p{margin-top:10px;color:#9db0c8;font-size:13px}
.heading-actions{align-items:center}
.card{
  background:linear-gradient(165deg,#152238 0%,#111b2b 87%);
  border:1px solid var(--line);
  border-radius:19px;
  box-shadow:var(--shadow);
  padding:22px;
}
.card-title{margin-bottom:18px}
.card-title h2{font-size:17px}
.grid{gap:17px}
.btn{
  background:#18263a;
  color:#eaf3ff;
  border:1px solid #304361;
  border-radius:11px;
  min-height:39px;
  font-size:12px;
  font-weight:740;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
  transition:background .16s,border-color .16s,transform .16s,box-shadow .16s;
}
.btn:hover{background:#213752;border-color:#4f7db8;transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn.primary{
  background:linear-gradient(120deg,#377fe9 0%,#2369d6 100%);
  border-color:#5099ff;
  box-shadow:0 6px 20px rgba(23,102,213,.25),inset 0 1px 0 rgba(255,255,255,.15);
  color:#fff;
}
.btn.primary:hover{
  background:linear-gradient(120deg,#4993ff,#3079ea);
  border-color:#81baff;
  box-shadow:0 9px 25px rgba(23,102,213,.35);
}
.btn.secondary{
  background:#153a6d;
  border-color:#3677c7;
  color:#f4f9ff;
}
.btn.secondary:hover{background:#1e4c87}
.btn.danger{color:#ffb0be;background:#2c1c28;border-color:#714351}
.btn.danger:hover{background:#472637}
.btn.small{border-radius:9px}
.chip{
  background:#1c2c42;
  border:1px solid #30425d;
  color:#bdcde1;
  font-size:10px;
  letter-spacing:.18px;
  padding:5px 10px;
}
.chip.teal{background:#143456;color:#8fc5ff;border-color:#28598a}
.chip.amber{background:#372c1a;color:#ffd699;border-color:#5b4528}
.chip.red{background:#40212d;color:#ffadbd;border-color:#713848}
.demo-banner{background:#352818;border:1px solid #67502b;color:#ffdda7}
.stat{
  position:relative;
  overflow:hidden;
  min-height:159px;
  padding:21px;
  transition:border-color .2s,transform .2s,box-shadow .2s;
}
.stat:before{
  content:"";position:absolute;right:-57px;top:-84px;
  width:174px;height:174px;border-radius:100%;
  background:radial-gradient(circle,rgba(73,144,248,.115),transparent 70%);
  pointer-events:none;
}
.stat:hover{border-color:#375a89;transform:translateY(-2px);box-shadow:0 20px 40px #0003}
.stat-icon{
  width:42px;height:42px;border-radius:13px;
  background:linear-gradient(135deg,#1c477b,#173251);
  border:1px solid #2d5787;
  box-shadow:inset 0 1px rgba(255,255,255,.08);
}
.stat-num{font-weight:870;font-size:32px;letter-spacing:-1px;margin-top:14px;line-height:1.15}
.stat-label{color:#9aadc6;font-size:12px;margin-top:5px;line-height:1.48}
.item{border-color:#283850;padding:14px 0}
.item-main strong{color:#e9f1fd;line-height:1.45}
.item-main small{color:#98abc4}
.time-box{
  background:#172e4a;
  border:1px solid #2b527d;
  border-radius:10px;
  color:#a9d3ff;
  padding:9px 11px;
}
.callout{background:#102b41;border:1px solid #285173;border-radius:14px;color:#d1e6fc}
.callout.warn{background:#302719;border-color:#6b4f29;color:#ffe1b1}
.callout .sub,.callout small{color:#b8c7d9}
.empty{
  background:#111c2c;
  border:1px dashed #365173;
  border-radius:15px;
  color:#98abc1;
  padding:34px;
}
.empty strong{color:#dceaff}
.day{
  background:linear-gradient(170deg,#142135,#101a2a);
  border-color:#293b55;
  border-radius:15px;
}
.day-title{color:#e9f3ff;border-color:#31435e}
.lesson{
  background:#142d48;
  border-left:3px solid #5b9cff;
  color:#e9f2ff;
  border-radius:9px;
}
.lesson:nth-child(even){background:#162941;border-color:#6bb8ff}
.lesson small{color:#a5b7cf}
.photo-frame{
  background:#0c1727;
  border-color:#365273;
  border-radius:15px;
}
.photo-placeholder{color:#9bacbf}
.photo-open span{background:rgba(17,38,70,.94)}
.field label{color:#b5c7df;font-size:12px}
.field input,.field textarea,.field select{
  background:#0d1726;
  color:#f1f6ff;
  border:1px solid #354661;
  border-radius:11px;
  caret-color:#78b9ff;
  color-scheme:dark;
}
.field input::placeholder,.field textarea::placeholder{color:#788ca7;opacity:1}
.field input:focus,.field textarea:focus,.field select:focus{
  border-color:#62a5ff;
  box-shadow:0 0 0 3px rgba(67,142,248,.17);
}
.field input:disabled{opacity:.63}
.table-scroll{border-color:#2b3d55;border-radius:13px}
table{background:#111c2d;color:#e4edfa}
th,td{border-bottom:1px solid #29384f}
th{background:#15253b;color:#adc1dc;font-weight:750}
tbody tr:hover{background:#16273e}
tr:last-child td{border-bottom:0}
.doc-row{border-color:#2b3e59;border-radius:14px;background:rgba(14,28,46,.65)}
.doc-icon{background:#1a3553;border:1px solid #2f5479;color:#95caff}
.doc-info strong{color:#f3f7ff}
.doc-info small{color:#9fb1ca}
.modal-bg{background:rgba(2,7,16,.82);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.modal{background:#121d2f;border:1px solid #34455e;border-radius:20px;box-shadow:0 25px 80px #0009}
.modal-head,.modal-foot{border-color:#304057;background:#131f31}
.modal-head h2{font-size:19px}
.modal form{background:#121d2f}
.login-screen{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(ellipse 43% 48% at 15% 12%,rgba(30,89,181,.24),transparent 85%),
    radial-gradient(ellipse 39% 39% at 94% 90%,rgba(30,104,183,.17),transparent 83%),
    #070d17;
}
.login-screen:before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.28;
  background-image:linear-gradient(rgba(90,146,207,.055) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(90,146,207,.055) 1px,transparent 1px);
  background-size:46px 46px;
  mask-image:linear-gradient(120deg,black,transparent 80%);
}
.login-panel{
  position:relative;isolation:isolate;
  background:linear-gradient(155deg,#17263c,#101b2c 72%);
  border:1px solid #375172;
  border-radius:23px;
  box-shadow:0 30px 100px #0009,0 0 65px rgba(44,101,181,.11);
  padding:38px;
  max-width:455px;
}
.login-panel:before{
  content:"";position:absolute;top:0;left:38px;right:38px;height:2px;
  background:linear-gradient(90deg,transparent,#57a4ff,transparent);
}
.login-logo{
  width:62px;height:62px;border-radius:18px;
  background:linear-gradient(145deg,#2870d6,#12375f);
  border:1px solid #5488c8;
  box-shadow:0 10px 30px rgba(30,94,185,.35);
  font-size:31px;
}
.login-panel h1{font-size:38px;color:#fff;letter-spacing:-1.8px;margin-top:5px}
.login-panel p{color:#aebed2;line-height:1.65}
.login-panel .overline{color:#81baff}
.login-panel .field{margin-bottom:16px}
.login-panel .field input{min-height:48px}
.login-panel .btn.primary{min-height:49px;margin-top:9px;font-size:13px}
.login-foot{color:#94a7c0;line-height:1.6}
.login-demo{border-color:#30445c}
.divider{border-color:#30445c}
.security-note{
  background:#111f31;
  border:1px solid #2c425d;
  color:#acbfd5;
  border-radius:13px;
}
.list-button{color:#e9f2ff}
.list-button:hover{color:#91c3ff}
.loader{color:#9fb3cb}
#toast{
  background:#1b3760;border:1px solid #386da8;
  border-radius:12px;box-shadow:0 16px 40px #0006;color:#fff;
}
.photo-close{background:#1a2a40;border-color:#5377a5;color:#fff}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid #78b6ff;
  outline-offset:3px;
}
button:disabled{filter:saturate(.6)}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:#0c1422}
::-webkit-scrollbar-thumb{background:#334a67;border-radius:12px}
::-webkit-scrollbar-thumb:hover{background:#486b92}
@media(max-width:1100px){
  .sidebar{width:244px}
  .main{padding:29px 27px 70px}
}
@media(max-width:780px){
  .main{padding:23px 15px calc(98px + env(safe-area-inset-bottom))}
  .topbar{
    height:calc(65px + env(safe-area-inset-top));
    padding:env(safe-area-inset-top) 17px 0;
    background:rgba(10,17,30,.94);
    border-color:#263952;
  }
  .topbar h3{font-size:12px}
  .top-right{gap:7px}
  .avatar{padding:7px 9px;border-radius:10px}
  .heading{margin-bottom:23px}
  .heading .overline{margin-bottom:10px}
  .heading h1{font-size:27px;letter-spacing:-.8px}
  .heading p{color:#a5b6cc}
  .heading-actions{margin-top:15px}
  .card{padding:17px;border-radius:16px}
  .stat{padding:17px;min-height:141px}
  .stat-icon{width:40px;height:40px}
  .stat-num{font-size:29px}
  .bottom-nav{
    height:calc(70px + env(safe-area-inset-bottom));
    background:rgba(13,23,39,.97);
    -webkit-backdrop-filter:blur(18px);
    backdrop-filter:blur(18px);
    border-color:#2a405c;
    box-shadow:0 -10px 33px rgba(0,0,0,.32);
    padding:6px 8px env(safe-area-inset-bottom);
  }
  .bottom-nav button{
    border:1px solid transparent;
    border-radius:12px;
    color:#92a6c1;
    font-size:10px;
    transition:color .16s,background .16s;
  }
  .bottom-nav button b{font-size:20px}
  .bottom-nav button.active{
    background:linear-gradient(160deg,#173c70,#152c4b);
    border-color:#315b8e;
    color:#c7e1ff;
    box-shadow:inset 0 2px 0 rgba(115,175,255,.19);
  }
  .mobile-more{
    bottom:calc(81px + env(safe-area-inset-bottom));
    background:#17243a;
    border-color:#334864;
    box-shadow:0 20px 55px #0009;
    border-radius:17px;
    padding:8px;
  }
  .mobile-more button{background:transparent;color:#e8f0ff;border-radius:11px}
  .mobile-more button:hover{background:#233b5d}
  .mobile-day-tabs button{
    background:#142136;
    border:1px solid #2e4260;
    border-radius:12px;
    color:#aebfda;
  }
  .mobile-day-tabs button small{color:#92a7c3}
  .mobile-day-tabs button.active{
    background:#183f75;border-color:#4f98ef;color:#fff;
    box-shadow:0 4px 20px rgba(32,105,198,.18);
  }
  .mobile-day-tabs button.active small{color:#cfebff}
  .day{padding:15px}
  .lesson{font-size:14px}
  .modal{background:#121d2f;border-color:#34455e;border-radius:20px 20px 0 0}
  .modal-head,.modal-foot{background:#142036;border-color:#32445e}
  .modal form{background:#121d2f}
  .login-panel{padding:29px 23px;border-radius:21px}
  .login-panel h1{font-size:34px}
  .week-control{gap:7px}
  #toast{bottom:calc(84px + env(safe-area-inset-bottom));background:#1b3760}
}
@media(max-width:350px){
  .main{padding-left:11px;padding-right:11px}
  .topbar{padding-left:11px;padding-right:11px}
  .topbar h3{font-size:11px}
  .chip{padding:4px 6px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .nav-btn,.btn,.stat,.bottom-nav button{transition:none}
  .nav-btn:hover,.btn:hover,.stat:hover{transform:none}
}


/* alpha06 · Sistema d'icones vectorials (traç de 1.8px, una sola família) */
.ui-icon{
  width:19px;height:19px;
  display:inline-block;
  flex:none;
  vertical-align:-.24em;
  stroke:currentColor;
  overflow:visible;
}
.brand-icon .ui-icon{width:27px;height:27px;stroke-width:1.7}
.nav-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.nav-icon .ui-icon{width:19px;height:19px}
.nav-btn.active .nav-icon{color:#89c5ff}
.nav-btn:hover .nav-icon{color:#a5d0ff}
.topbar-location{display:inline-flex;vertical-align:middle;color:#7db6ff;margin-right:5px}
.topbar-location .ui-icon{width:15px;height:15px}
.btn .ui-icon{width:16px;height:16px;margin-right:1px;vertical-align:-.24em}
.btn.small .ui-icon{width:14px;height:14px}
.stat-icon{color:#93c6ff}
.stat-icon .ui-icon{width:23px;height:23px;stroke-width:1.9}
.item-icon{
  width:35px;height:35px;display:grid;place-items:center;
  flex-shrink:0;border-radius:11px;background:#17334f;
  border:1px solid #2a537e;color:#9bcaff;
}
.item-icon .ui-icon{width:18px;height:18px}
.doc-icon .ui-icon{width:23px;height:23px}
.login-logo .ui-icon{width:30px;height:30px;stroke-width:1.7;color:#f4faff}
.photo-placeholder .big .ui-icon{width:38px;height:38px;color:#81b8f7}
.photo-placeholder .big{line-height:1;min-height:44px}
.photo-frame .photo-open span .ui-icon{width:16px;height:16px}
.security-note .ui-icon,.demo-banner .ui-icon{width:15px;height:15px;color:#88bdff;margin-right:5px}
.callout .ui-icon,h3 .ui-icon{width:17px;height:17px;color:#8dbfff;margin-right:4px}
.chip .ui-icon{width:13px;height:13px;margin-right:4px}
.mobile-more button{display:flex;align-items:center;gap:9px}
.mobile-more button .ui-icon{width:18px;height:18px;color:#8dbfff}
.bottom-nav button b{
  width:26px;height:26px;display:grid;place-items:center;
  line-height:1;font-size:0;font-weight:400;
}
.bottom-nav button b .ui-icon{width:21px;height:21px;stroke-width:1.9}
.bottom-nav button.active b .ui-icon{stroke-width:2.1}
.week-control button .ui-icon{margin:0}
@media(max-width:780px){
  .nav-icon .ui-icon{width:20px;height:20px}
  .stat-icon .ui-icon{width:21px;height:21px}
  .topbar-location .ui-icon{width:14px;height:14px}
  .bottom-nav button b{width:25px;height:25px}
  .bottom-nav button b .ui-icon{width:21px;height:21px}
  .mobile-more button{min-height:45px}
}


/* V2.1 · Horari en graella, llegible com el document original */
.week-toolbar{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:12px;margin:0 0 17px;
}
.week-toolbar .week-control{
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  border:1px solid #294260;border-radius:15px;padding:7px;
  background:linear-gradient(155deg,#17263c,#111d30);
}
.week-toolbar .week-control b{
  min-width:168px;color:#eaf2fe;font-size:13px;letter-spacing:.1px;
}
.timetable-panel{
  padding:20px 20px 14px;
  margin-bottom:18px;
  overflow:hidden;
}
.timetable-header{margin-bottom:13px;align-items:center}
.timetable-header .overline{font-size:9px;margin-bottom:7px}
.timetable-header h2{font-size:19px;margin-bottom:4px}
.timetable-header p{font-size:12px;color:#a6bcd8}
.timetable-scroll{width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
table.timetable{
  width:100%;min-width:770px;
  table-layout:fixed;
  border-collapse:separate;
  border-spacing:7px;
  background:transparent;
}
.timetable th,.timetable td{
  border:none;
  padding:0;
  text-align:left;
  vertical-align:top;
  background:transparent;
}
.timetable thead th{
  padding:12px 13px;
  background:#192b43;
  border:1px solid #2c486a;
  border-radius:12px;
  color:#e1edff;
}
.timetable thead th:not(:first-child){text-align:center}
.timetable .timetable-corner{width:94px;font-weight:680;font-size:12px;color:#9db7d7;text-align:center}
.timetable-corner .ui-icon{width:16px;height:16px}
.timetable-day-head strong{
  display:block;font-size:13px;font-weight:820;letter-spacing:-.1px;
}
.timetable-day-head small{display:block;margin-top:5px;color:#98b4d6;font-size:11px;font-weight:550}
.timetable tbody .timetable-time{
  width:94px;
  padding:16px 10px;
  background:#101f32;
  border:1px solid #2b405b;
  border-radius:12px;
  text-align:center;vertical-align:middle;
}
.timetable-time strong,.timetable-time small{display:block}
.timetable-time strong{color:#d2e9ff;font-size:13px;line-height:1.3}
.timetable-time small{color:#7e9bbd;font-size:12px;margin-top:5px}
.timetable td.timetable-cell{height:147px;min-width:0}
.timetable td.no-class{border:1px dashed #2a3e59;border-radius:12px;vertical-align:middle;text-align:center;background:rgba(15,26,43,.45)}
.timetable-free{color:#5c7597;font-size:20px}
.timetable-lesson{
  display:flex;flex-direction:column;align-items:flex-start;gap:9px;
  min-height:100%;padding:14px 12px;
  background:linear-gradient(155deg,#193a61,#142e4c 80%);
  border:1px solid #315e95;
  border-left:3px solid #6facff;
  border-radius:12px;
  box-shadow:inset 0 1px rgba(255,255,255,.05),0 5px 18px rgba(0,0,0,.09);
  overflow-wrap:anywhere;
}
.timetable-lesson+.timetable-lesson{margin-top:7px;min-height:auto}
.timetable-subject{display:block;color:#f1f7ff;font-size:13px;font-weight:790;line-height:1.35}
.timetable-teacher{
  color:#b8cbe5;font-size:11px;line-height:1.4;
  display:flex;align-items:flex-start;gap:6px;
}
.timetable-room{
  display:inline-flex;align-items:center;gap:5px;
  color:#a2caff;background:#163859;border:1px solid #2e5884;
  padding:4px 7px;border-radius:7px;
  font-size:10px;line-height:1.2;
}
.timetable-teacher .ui-icon,.timetable-room .ui-icon{width:13px;height:13px;flex-shrink:0;margin-top:1px}
.timetable-edit{margin-top:auto;align-self:flex-end}
.timetable-foot{
  display:flex;align-items:center;gap:7px;
  padding:10px 7px 0;margin-top:5px;color:#92aac7;font-size:11px;
}
.timetable-foot .ui-icon{width:15px;height:15px;color:#83b7fb}
.timetable-photo-panel .photo-frame{min-height:160px}
.timetable-photo-panel .card-title{margin-bottom:15px}
.timetable-photo-panel .card-title .sub{margin-top:5px}
.timetable-mobile{display:none}
.timetable-panel .mobile-day-tabs{display:none}
@media(max-width:1000px) and (min-width:781px){
  .timetable-scroll{margin:0 -4px;width:calc(100% + 8px)}
  .timetable-lesson{padding:11px 8px}
  .timetable-teacher{font-size:10px}
}
@media(max-width:780px){
  .week-toolbar{gap:10px;margin-bottom:15px}
  .week-toolbar .week-control{
    width:100%;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:7px;padding:7px;
  }
  .week-toolbar .week-control b{min-width:0}
  .week-toolbar>.btn{width:100%;justify-content:center}
  .timetable-panel{padding:16px 13px 13px;border-radius:17px}
  .timetable-header{align-items:flex-start}
  .timetable-header h2{font-size:17px}
  .timetable-header .chip{font-size:9px;white-space:nowrap}
  .timetable-scroll{display:none}
  .timetable-panel .mobile-day-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:14px 0 16px}
  .timetable-mobile{display:block}
  .timetable-mobile-heading{
    display:flex;align-items:center;justify-content:space-between;
    gap:10px;margin:5px 2px 12px;padding-bottom:10px;border-bottom:1px solid #2c415c;
  }
  .timetable-mobile-heading strong{font-size:16px;color:#e6f2ff}
  .timetable-mobile-heading span{font-size:12px;color:#98b4d5}
  .timetable-mobile-event{
    display:grid;grid-template-columns:63px minmax(0,1fr);
    gap:10px;align-items:stretch;margin-bottom:11px;
  }
  .timetable-mobile-time{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:7px;border-radius:11px;
    background:#14263c;border:1px solid #294766;
    color:#d0e8ff;
  }
  .timetable-mobile-time strong{font-size:13px}
  .timetable-mobile-time span{font-size:11px;color:#93abc7}
  .timetable-mobile-event .timetable-lesson{
    min-height:103px;padding:13px;gap:8px;
  }
  .timetable-mobile-event .timetable-subject{font-size:15px}
  .timetable-mobile-event .timetable-teacher{font-size:12px}
  .timetable-mobile-event .timetable-room{font-size:11px}
  .timetable-foot{margin-top:7px;padding:10px 2px 0;font-size:11px;align-items:flex-start}
  .timetable-photo-panel{padding:16px 13px}
}

/* alpha06 · Franges de flexibilitat en blau grisós, diferenciades de les classes */
.timetable-lesson.timetable-flexibility{
  background:linear-gradient(145deg,#1b2a3b,#182331 92%);
  border:1px dashed #52677f;
  border-left:3px solid #8298b5;
  box-shadow:none;
  justify-content:center;
}
.timetable-flexibility .timetable-subject{
  color:#c8d6e9;
  font-weight:740;
  letter-spacing:.04em;
}
.timetable-flexibility .timetable-edit{
  align-self:flex-end;
  margin-top:13px;
}
.timetable-mobile-event:has(.timetable-flexibility) .timetable-mobile-time{
  background:#172333;
  border-color:#3d4f67;
  color:#bacce2;
}
@media(max-width:780px){
  .timetable-mobile-event .timetable-lesson.timetable-flexibility{
    min-height:98px;
    border-color:#52677f;
    border-left-color:#8298b5;
  }
}

/* alpha06 V2.2 · Panell d'inici: visió general de la secció */
.overview{display:flex;flex-direction:column;gap:19px}
.overview-hero{
  position:relative;isolation:isolate;overflow:hidden;
  display:grid;grid-template-columns:minmax(0,1fr) 260px;
  align-items:stretch;gap:25px;
  padding:32px 34px;
  border:1px solid #315383;border-radius:21px;
  background:
    radial-gradient(ellipse 57% 95% at 87% 0%,rgba(68,151,255,.23),transparent 85%),
    linear-gradient(115deg,#142b4b,#11335b 67%,#172b48);
  box-shadow:0 16px 45px #0004,inset 0 1px rgba(188,218,255,.07);
}
.overview-hero:after{
  content:"";position:absolute;z-index:-1;right:26px;top:-130px;
  width:370px;height:370px;border-radius:50%;pointer-events:none;
  border:1px solid rgba(112,176,255,.11);
  box-shadow:0 0 0 55px rgba(106,169,254,.035),0 0 0 110px rgba(106,169,254,.025);
}
.overview-hero-main{position:relative;z-index:1}
.overview-eyebrow{
  display:inline-flex;align-items:center;gap:7px;
  color:#b1d3ff;font-size:10px;font-weight:800;letter-spacing:1.3px;
  text-transform:uppercase;margin-bottom:17px;
}
.overview-eyebrow .ui-icon{width:16px;height:16px;color:#7dbaff}
.overview-hero h1{
  font-size:clamp(27px,3vw,41px);
  line-height:1.14;letter-spacing:-1.4px;max-width:560px;
  color:#f5faff;font-weight:840;
}
.overview-hero h1 span{color:#99caff}
.overview-hero-main>p{
  max-width:525px;color:#b6cbe5;font-size:13px;line-height:1.68;
  margin:13px 0 23px;
}
.overview-hero-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.overview-hero-actions .btn{min-height:42px;padding:10px 15px}
.overview-hero-actions .overview-hero-alt{
  background:rgba(12,32,60,.55);border-color:#4a729d;
  color:#d4e7ff;
}
.overview-hero-actions .overview-hero-alt:hover{background:#22456e}
.overview-hero-aside{
  position:relative;z-index:1;
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  padding:20px 21px;border-radius:16px;min-width:0;
  background:linear-gradient(155deg,rgba(10,28,52,.72),rgba(11,25,44,.49));
  border:1px solid rgba(145,192,248,.24);
  box-shadow:inset 0 1px rgba(255,255,255,.07);
}
.overview-hero-aside-icon{
  width:42px;height:42px;border-radius:13px;
  background:linear-gradient(140deg,#20538e,#21406a);
  border:1px solid #41699b;color:#a7d4ff;
  display:grid;place-items:center;margin-bottom:16px;
}
.overview-hero-aside-icon .ui-icon{width:22px;height:22px}
.overview-hero-aside-label{
  color:#93b9e8;font-size:10px;font-weight:840;
  letter-spacing:1.3px;margin-bottom:8px;
}
.overview-hero-aside strong{
  font-size:21px;line-height:1.25;color:#fff;
  letter-spacing:-.4px;text-transform:capitalize;
}
.overview-hero-aside-detail{
  color:#b2cae7;font-size:11px;line-height:1.5;
  margin-top:13px;
}
.overview-stats{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;
}
.overview-stat{
  display:flex;flex-direction:column;align-items:flex-start;text-align:left;
  position:relative;min-width:0;min-height:175px;
  padding:19px 19px 17px;
  color:#eef5ff;background:linear-gradient(155deg,#16263d,#121e30 88%);
  border:1px solid #2c405b;border-radius:17px;
  box-shadow:0 8px 24px rgba(0,0,0,.14);
  transition:transform .18s,border-color .18s,background .18s;
}
.overview-stat:hover{
  transform:translateY(-2px);
  border-color:#4776b3;background:linear-gradient(155deg,#1a304d,#14243a);
}
.overview-stat-top{display:flex;align-items:center;justify-content:space-between;width:100%}
.overview-stat-icon{
  width:40px;height:40px;display:grid;place-items:center;
  background:#193b64;border:1px solid #345d8e;
  border-radius:12px;color:#a7d1ff;
}
.overview-stat-icon .ui-icon{width:21px;height:21px}
.overview-stat-arrow{color:#607f9f}
.overview-stat-arrow .ui-icon{width:17px;height:17px}
.overview-stat-number{
  display:block;font-size:31px;font-weight:850;
  line-height:1.1;letter-spacing:-1px;margin:14px 0 5px;
}
.overview-stat-label{
  color:#e0edff;font-size:12px;line-height:1.35;font-weight:720;
}
.overview-stat-sub{display:block;color:#8fa7c2;font-size:11px;margin-top:7px;line-height:1.4}
.overview-grid{
  display:grid;grid-template-columns:minmax(0,1.13fr) minmax(0,.94fr);
  align-items:start;gap:17px;
}
.overview-side{display:flex;flex-direction:column;gap:17px;min-width:0}
.overview-panel{padding:22px;min-width:0}
.overview-panel-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:10px;
  margin-bottom:19px;
}
.overview-panel-head>div{min-width:0}
.overview-panel-head h2{font-size:19px;letter-spacing:-.6px;margin:5px 0}
.overview-panel-head p{color:#99adc7;font-size:12px;line-height:1.5}
.overview-panel-head>.btn{flex-shrink:0;font-size:11px;gap:5px}
.overview-panel-head>.btn .ui-icon{width:13px;height:13px}
.overview-section-kicker{
  display:inline-flex;align-items:center;gap:6px;
  font-size:10px;letter-spacing:1.15px;font-weight:840;
  color:#87c0ff;
}
.overview-section-kicker .ui-icon{width:14px;height:14px}
.overview-lesson-list{display:flex;flex-direction:column;gap:10px}
.overview-lesson{
  display:grid;grid-template-columns:66px minmax(0,1fr);
  gap:13px;padding:14px;
  border:1px solid #315078;
  border-left:3px solid #72b2ff;
  border-radius:13px;
  background:linear-gradient(120deg,#182f4e,#14263d);
}
.overview-lesson-hours{
  display:flex;flex-direction:column;gap:6px;
  border-right:1px solid #345374;padding:3px 8px 3px 0;
  justify-content:center;align-items:flex-start;
}
.overview-lesson-hours strong{font-size:14px;color:#a9d5ff}
.overview-lesson-hours span{font-size:12px;color:#94aac7}
.overview-lesson-body{display:flex;flex-direction:column;justify-content:center;gap:7px;min-width:0}
.overview-lesson-body>strong{font-size:14px;line-height:1.4;color:#f1f7ff}
.overview-detail{display:flex;align-items:center;gap:6px;font-size:11px;color:#b4c6dd;line-height:1.5;min-width:0;overflow-wrap:anywhere}
.overview-detail .ui-icon{width:13px;height:13px;flex-shrink:0;color:#89b8ed}
.overview-lesson-flex{
  border-style:dashed;border-color:#4c637c;
  border-left:3px solid #839ab8;
  background:linear-gradient(120deg,#1a2939,#172434);
}
.overview-lesson-flex .overview-lesson-body>strong{color:#c6d7e9;font-weight:750}
.overview-lesson-flex .overview-lesson-hours{
  border-color:#43566c;
}
.overview-lesson-flex .overview-lesson-hours strong{color:#bed0e3}
.overview-dates-list,.overview-notice-list{display:flex;flex-direction:column;gap:7px}
.overview-deadline{
  display:flex;align-items:center;gap:11px;
  width:100%;padding:11px 10px;text-align:left;
  background:#111f32;border:1px solid #2b405b;border-radius:12px;
  color:#f1f6ff;
  transition:background .18s,border-color .18s;
}
.overview-deadline:hover,.overview-notice:hover{
  background:#192e48;border-color:#476e9c;
}
.overview-deadline-icon{
  width:36px;height:36px;flex-shrink:0;
  display:grid;place-items:center;
  border-radius:11px;background:#213b5a;
  color:#9cc7ff;
}
.overview-deadline-icon .ui-icon{width:18px;height:18px}
.overview-deadline-icon.exam{background:#203b66;color:#a3caff}
.overview-deadline-icon.task{background:#1d4255;color:#8bd4de}
.overview-deadline-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px}
.overview-deadline-copy strong{font-size:12px;color:#eaf2fd;line-height:1.3;overflow-wrap:anywhere}
.overview-deadline-copy small{font-size:10px;line-height:1.4;color:#93a9c3}
.overview-deadline-date{
  font-size:10px;font-weight:820;white-space:nowrap;
  color:#afd5ff;background:#1a3659;border:1px solid #31537a;
  border-radius:8px;padding:6px 7px;
}
.overview-panel-footer{display:flex;gap:8px;justify-content:flex-start;flex-wrap:wrap;margin-top:14px}
.overview-panel-footer .btn{font-size:11px}
.overview-panel-footer .btn .ui-icon{width:13px;height:13px}
.overview-notice{
  display:flex;align-items:center;gap:10px;
  width:100%;text-align:left;padding:12px 11px;
  background:#111e30;border:1px solid #273b55;border-radius:11px;
  color:#f3f7ff;transition:background .18s,border-color .18s;
}
.overview-notice-dot{
  width:7px;height:7px;flex-shrink:0;
  border-radius:100%;background:#6db7ff;
  box-shadow:0 0 0 4px rgba(88,162,252,.10);
}
.overview-notice-copy{display:flex;flex:1;flex-direction:column;gap:5px;min-width:0}
.overview-notice-copy strong{font-size:12px;line-height:1.3;color:#e9f3ff}
.overview-notice-copy small{
  font-size:11px;line-height:1.48;color:#98aac1;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  overflow-wrap:anywhere;
}
.overview-notice-arrow{color:#729ac7}
.overview-notice-arrow .ui-icon{width:15px;height:15px}
.overview-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:155px;text-align:center;gap:9px;
  background:#111f32;border:1px dashed #34506f;border-radius:13px;
  padding:20px;color:#9fb2cb;
}
.overview-empty>.ui-icon{width:25px;height:25px;color:#78b9ff;margin-bottom:3px}
.overview-empty strong{color:#dbeaff;font-size:13px}
.overview-empty span{color:#99b0c9;font-size:12px;line-height:1.5;max-width:260px}
.overview-empty-compact{min-height:132px}
@media(max-width:1180px){
  .overview-grid{grid-template-columns:minmax(0,1fr)}
  .overview-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .overview-stats{gap:11px}
  .overview-stat{padding:15px;min-height:163px}
}
@media(max-width:900px){
  .overview-hero{grid-template-columns:minmax(0,1fr);padding:27px}
  .overview-hero-aside{flex-direction:row;flex-wrap:wrap;gap:5px 13px;align-items:center;padding:13px 16px}
  .overview-hero-aside-icon{margin:0;width:36px;height:36px}
  .overview-hero-aside-label{margin:0}
  .overview-hero-aside strong{font-size:17px}
  .overview-hero-aside-detail{flex-basis:100%;margin:0 0 0 49px}
  .overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:780px){
  .overview{gap:15px}
  .overview-hero{border-radius:18px;padding:22px 19px;gap:17px}
  .overview-hero h1{font-size:clamp(27px,7vw,35px);letter-spacing:-1.1px}
  .overview-hero-main>p{margin:11px 0 19px;font-size:12px}
  .overview-hero-actions{gap:9px}
  .overview-hero-actions .btn{flex:1;min-width:0}
  .overview-eyebrow{font-size:9px;letter-spacing:1.1px;margin-bottom:13px}
  .overview-stats{gap:10px}
  .overview-stat{min-height:154px;padding:15px;border-radius:14px}
  .overview-stat-icon{width:35px;height:35px;border-radius:11px}
  .overview-stat-icon .ui-icon{width:19px;height:19px}
  .overview-stat-number{font-size:28px;margin:10px 0 5px}
  .overview-stat-label{font-size:11px}
  .overview-stat-sub{font-size:10px}
  .overview-side{display:flex;flex-direction:column;gap:15px}
  .overview-grid{gap:15px}
  .overview-panel{padding:17px 14px}
  .overview-panel-head{gap:8px;flex-wrap:wrap;margin-bottom:15px}
  .overview-panel-head h2{font-size:18px}
  .overview-panel-head>.btn{min-height:37px;padding:8px 10px}
  .overview-lesson{grid-template-columns:60px minmax(0,1fr);gap:10px;padding:12px}
  .overview-lesson-hours strong{font-size:13px}
  .overview-lesson-body>strong{font-size:13px}
  .overview-detail{font-size:11px}
}
@media(max-width:380px){
  .overview-hero-aside{gap:6px 9px}
  .overview-hero-aside strong{font-size:15px}
  .overview-hero-aside-detail{margin-left:0}
  .overview-hero-actions .btn{font-size:11px;padding:9px 8px}
  .overview-stat{padding:13px 11px}
  .overview-deadline-date{padding:5px;font-size:10px}
}
@media(prefers-reduced-motion:reduce){
  .overview-stat,.overview-deadline,.overview-notice{transition:none}
  .overview-stat:hover{transform:none}
}

/* Inici simplificat: títol corporatiu ALPHA06 sense eslògan */
.overview-hero .overview-main-title{
  font-size:clamp(25px,2.75vw,36px);
  line-height:1.2;
  letter-spacing:-.8px;
  max-width:700px;
  margin:0 0 27px;
}
.overview-main-title span{color:#a6d0ff}
@media(max-width:780px){
  .overview-hero .overview-main-title{
    font-size:clamp(23px,6.1vw,30px);
    margin-bottom:21px;
  }
}

/* Alpha06: capçalera amb escut, descripció i accions ancorades a baix */
.overview-hero-main{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  min-height:212px;
}
.overview-hero .overview-main-title{
  display:block;
  margin:0;
  max-width:690px;
  line-height:1.25;
}
.overview-hero .overview-title-shield{
  display:inline-grid;
  place-items:center;
  width:38px;
  height:38px;
  margin-right:8px;
  vertical-align:-.24em;
  border:1px solid #4677ab;
  border-radius:12px;
  background:linear-gradient(135deg,#224c7d,#193858);
  color:#b5d8ff;
}
.overview-hero .overview-title-shield .ui-icon{
  width:22px;
  height:22px;
  vertical-align:middle;
}
.overview-hero-main>p{
  max-width:500px;
  color:#b6cbe5;
  font-size:13px;
  line-height:1.68;
  margin:17px 0 23px;
}
.overview-hero-actions{
  margin-top:auto;
  padding-top:6px;
}
@media(max-width:780px){
  .overview-hero-main{min-height:unset}
  .overview-hero .overview-title-shield{
    width:33px;height:33px;margin-right:6px;border-radius:10px;
  }
  .overview-hero .overview-title-shield .ui-icon{width:20px;height:20px}
  .overview-hero-main>p{font-size:12px;margin:14px 0 20px}
}

/* Ajust de precisió: escut i títol a la mateixa línia, també en mòbil */
.overview-hero .overview-main-title{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  max-width:100%;
}
.overview-hero .overview-title-shield{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 40px;
  width:40px;
  height:40px;
  margin:0;
  vertical-align:baseline;
  line-height:1;
  color:#b5d8ff;
}
.overview-hero .overview-title-shield .ui-icon{
  display:block;
  vertical-align:baseline;
}
.overview-hero .overview-title-text{
  display:block;
  flex:1 1 auto;
  min-width:0;
  color:#f5faff;
}
.overview-hero .overview-title-text>span{color:#a6d0ff}
@media(max-width:780px){
  .overview-hero .overview-main-title{gap:10px}
  .overview-hero .overview-title-shield{
    flex-basis:34px;width:34px;height:34px;margin:0;
  }
}

/* Data de tasca: només es mostra l'avís quan la data encara no està validada */
.task-date-pending{
  display:block;
  margin-top:6px;
  color:#f2ca83;
  font-size:11px;
  font-weight:700;
  line-height:1.4;
}
