:root{
  --bg:#080918; --bg2:#11132d; --card:#14172f; --card2:#1a1e3a; --line:#2a3054;
  --text:#f7f8ff; --muted:#aeb4d0; --primary:#24b8bc; --primary2:#39d2c0;
  --warning:#f59e0b; --danger:#ef4444; --success:#34a853; --draft:#f2a53b;
  --violet:#8b5cf6; --shadow:0 18px 60px rgba(0,0,0,.28); --radius:18px;
  --safe-bottom:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:radial-gradient(circle at 20% 0%,#1b1551 0,#0b0b22 35%,#070817 75%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
body{min-height:100vh}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit}
.app-shell{min-height:100vh}
.splash{min-height:100vh;display:grid;grid-template-columns:minmax(280px,560px) minmax(320px,520px);align-items:center;justify-content:center;gap:clamp(20px,6vw,90px);padding:clamp(24px,5vw,72px);position:relative;overflow:hidden}
.splash::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 20%,rgba(106,61,255,.18),transparent 45%);pointer-events:none}
.splash-art{width:min(100%,560px);max-height:78vh;object-fit:contain;filter:drop-shadow(0 25px 55px rgba(0,0,0,.42));border-radius:32px}
.splash-panel{z-index:1}.brand-title{font-size:clamp(42px,6vw,72px);line-height:.96;margin:0 0 14px;font-weight:780;letter-spacing:-.045em}.tagline{font-size:clamp(17px,2vw,23px);color:#d9dcf4;margin:0 0 32px}.lang-row{display:flex;gap:10px;margin:24px 0}.lang{border:1px solid var(--line);background:#11142b;color:var(--muted);padding:10px 16px;border-radius:999px}.lang.active{color:#fff;border-color:#f6b51b;box-shadow:0 0 0 2px rgba(246,181,27,.1)}
.btn{border:1px solid var(--line);background:#171b36;color:#fff;padding:11px 16px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:650;min-height:44px}.btn:hover{filter:brightness(1.08)}.btn.primary{background:linear-gradient(135deg,#16aeb4,#26c7b8);border-color:transparent;color:#061114}.btn.publish{background:linear-gradient(135deg,#f33f7d,#ff8a24,#ffc21d);border-color:transparent;color:white}.btn.danger{border-color:rgba(239,68,68,.45);color:#ffb1b1}.btn.ghost{background:transparent}.btn.small{min-height:34px;padding:7px 10px;font-size:13px}.btn.full{width:100%}.access-note{color:var(--muted);font-size:13px;margin-top:14px;max-width:440px}
.layout{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:22px 16px;border-right:1px solid rgba(255,255,255,.07);background:rgba(8,9,24,.82);backdrop-filter:blur(20px);display:flex;flex-direction:column;gap:18px}.mini-brand{display:flex;align-items:center;gap:10px;font-weight:750}.mini-logo{width:42px;height:42px;border-radius:50%;object-fit:cover}.nav{display:flex;flex-direction:column;gap:6px}.nav button{border:0;background:transparent;color:var(--muted);padding:11px 12px;border-radius:11px;text-align:left;display:flex;gap:10px;align-items:center}.nav button.active,.nav button:hover{background:#181c38;color:#fff}.nav-sep{height:1px;background:var(--line);margin:8px 0}.sidebar-bottom{margin-top:auto}.user-chip{border:1px solid var(--line);background:#12162d;border-radius:14px;padding:11px;font-size:13px;color:var(--muted)}
.main{min-width:0;padding:24px clamp(16px,3vw,42px) 90px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.topbar h1{margin:0;font-size:clamp(25px,3vw,38px)}.sub{color:var(--muted);font-size:14px;margin-top:5px}.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.status{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:7px 10px;font-size:12px;border:1px solid var(--line)}.status.published{color:#8ce39e;background:rgba(52,168,83,.1);border-color:rgba(52,168,83,.25)}.status.draft{color:#ffd28a;background:rgba(245,158,11,.1);border-color:rgba(245,158,11,.25)}.status.cloud{color:#8ce7e7}.update-banner{position:sticky;top:10px;z-index:20;margin-bottom:12px;border:1px solid #6d4fe1;background:#211850;padding:10px 14px;border-radius:12px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.card{background:linear-gradient(180deg,rgba(23,27,56,.97),rgba(15,18,39,.97));border:1px solid rgba(255,255,255,.09);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.module-card{grid-column:span 6;min-height:180px;position:relative;overflow:hidden}.module-card::after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-65px;top:-65px;background:radial-gradient(circle,var(--accent,rgba(36,184,188,.22)),transparent 70%)}.module-icon{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;font-size:27px;border:1px solid color-mix(in srgb,var(--accent-color,#22c1c3),#fff 15%);background:color-mix(in srgb,var(--accent-color,#22c1c3),transparent 86%);margin-bottom:18px}.module-card h3{font-size:21px;margin:0 0 7px}.module-card p{color:var(--muted);max-width:390px;margin:0 0 16px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.kpi{background:#131730;border:1px solid var(--line);border-radius:15px;padding:15px}.kpi strong{display:block;font-size:26px}.kpi span{font-size:12px;color:var(--muted)}
.tabs{display:flex;gap:6px;overflow:auto;padding-bottom:4px;scrollbar-width:thin}.tab{flex:0 0 auto;border:1px solid var(--line);background:#11142b;color:var(--muted);padding:9px 14px;border-radius:10px}.tab.active{color:#111;background:#ffd02c;border-color:#ffd02c;font-weight:700}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:#0e1128;max-height:70vh}.round-table{border-collapse:separate;border-spacing:0;min-width:800px;width:100%;font-size:13px}.round-table th,.round-table td{padding:9px 10px;border-right:1px solid #2c3150;border-bottom:1px solid #2c3150;text-align:center;white-space:nowrap}.round-table thead th{position:sticky;top:0;background:#171a35;z-index:5}.round-table .sticky-group{position:sticky;left:0;z-index:4}.round-table .sticky-level{position:sticky;left:94px;z-index:4;background:#13172f}.round-table thead .sticky-group,.round-table thead .sticky-level{z-index:8}.round-table .group-cell{font-weight:800;color:#fff;min-width:94px;text-shadow:0 1px 2px rgba(0,0,0,.5)}.round-table .level-cell{font-weight:700;min-width:55px}.round-table .nee-cell{font-weight:850;color:#fff;background:linear-gradient(135deg,rgba(232,63,124,.34),rgba(139,92,246,.25))}.round-table tfoot td{position:sticky;bottom:0;background:#171a35;font-weight:700}.legend{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin-top:10px}.mobile-hint{display:none;color:var(--muted);font-size:12px;margin:8px 0}
.editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.group-editor{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#10142c}.group-head{padding:12px 14px;font-weight:800;display:flex;justify-content:space-between;align-items:center}.level-edit{display:grid;grid-template-columns:58px minmax(130px,1fr) minmax(170px,1.4fr);gap:10px;align-items:start;padding:12px;border-top:1px solid var(--line)}.counter{display:inline-grid;grid-template-columns:38px 54px 38px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.counter button{border:0;background:#1a1f3e;color:#fff}.counter span{display:grid;place-items:center;font-weight:800;background:#0f1228}.nee-list{display:flex;flex-direction:column;gap:8px}.nee-row{display:grid;grid-template-columns:70px 86px minmax(110px,1fr) 34px;gap:7px;align-items:center;background:#161a35;border:1px solid #2b3154;padding:7px;border-radius:10px;font-size:12px}.nee-id{font-weight:800;color:#ffbfda}.toggle{appearance:none;width:42px;height:24px;border-radius:999px;background:#3a3e59;position:relative;vertical-align:middle;transition:.2s}.toggle::after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;transition:.2s}.toggle:checked{background:#27b6b2}.toggle:checked::after{transform:translateX(18px)}select,input[type="text"],input[type="email"],input[type="number"],input[type="date"],textarea{width:100%;background:#0d1026;color:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;outline:none}select:focus,input:focus,textarea:focus{border-color:var(--primary)}label.field{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:12px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:22px 0 10px}.section-title h2,.section-title h3{margin:0}.action-bar{position:sticky;bottom:12px;z-index:14;margin-top:18px;display:flex;justify-content:flex-end;gap:8px;background:rgba(9,10,26,.88);backdrop-filter:blur(15px);padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:15px}
.config-list{display:flex;flex-direction:column;gap:8px}.config-row{display:grid;grid-template-columns:42px minmax(120px,1fr) 110px 80px 42px;gap:8px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:11px;background:#11152e}.color-dot{width:24px;height:24px;border-radius:50%;border:2px solid rgba(255,255,255,.25)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.warning-box{border:1px solid rgba(245,158,11,.35);background:rgba(245,158,11,.08);padding:12px;border-radius:12px;color:#ffd998;font-size:13px}.success-box{border:1px solid rgba(52,168,83,.35);background:rgba(52,168,83,.08);padding:12px;border-radius:12px;color:#a9efb8;font-size:13px}.danger-box{border:1px solid rgba(239,68,68,.35);background:rgba(239,68,68,.08);padding:12px;border-radius:12px;color:#ffb6b6;font-size:13px}
.session-cards{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.session-card{padding:13px 9px;text-align:center;border:1px solid var(--line);border-radius:12px;background:#12162f}.session-card strong{display:block;font-size:23px}.planner{display:grid;grid-template-columns:repeat(7,minmax(115px,1fr));gap:8px;overflow:auto}.planner-col{background:#10142d;border:1px solid var(--line);border-radius:12px;padding:8px}.planner-col h4{margin:0 0 8px}.slot{padding:7px;border-radius:8px;background:#1a1f3e;margin:5px 0;font-size:12px}.slot.psycho{border-left:3px solid #ef4f85}.slot.montessori{border-left:3px solid #24b8bc}
.user-table{width:100%;border-collapse:collapse}.user-table th,.user-table td{text-align:left;padding:10px;border-bottom:1px solid var(--line);font-size:13px}.pill{display:inline-flex;padding:5px 8px;border-radius:999px;background:#1d2343;font-size:11px}.pill.owner{color:#ffd95c}.pill.coadmin{color:#8ae4df}.pill.viewer{color:#c4c8da}
.bottom-nav{display:none}.toast{position:fixed;right:18px;bottom:22px;z-index:100;background:#171b36;color:#fff;border:1px solid #383e64;border-radius:12px;padding:12px 16px;box-shadow:var(--shadow);opacity:0;transform:translateY(15px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.empty{padding:30px;text-align:center;color:var(--muted)}
@media(max-width:980px){.layout{grid-template-columns:1fr}.sidebar{display:none}.main{padding:18px 12px calc(90px + var(--safe-bottom))}.bottom-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);bottom:0;left:0;right:0;z-index:40;background:rgba(8,9,24,.95);backdrop-filter:blur(18px);border-top:1px solid var(--line);padding:8px 6px calc(8px + var(--safe-bottom))}.bottom-nav button{border:0;background:transparent;color:var(--muted);font-size:11px;display:flex;flex-direction:column;gap:3px;align-items:center}.bottom-nav button.active{color:#ffd42a}.module-card{grid-column:span 12}.editor-grid,.two-col,.three-col{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}.mobile-hint{display:block}.level-edit{grid-template-columns:50px 1fr}.level-edit .nee-list{grid-column:1/-1}.session-cards{grid-template-columns:repeat(4,1fr)}.splash{grid-template-columns:1fr;text-align:center;padding:20px}.splash-art{max-height:52vh;margin:auto}.splash-panel{margin-top:-20px}.lang-row{justify-content:center}.access-note{margin-left:auto;margin-right:auto}.action-bar{justify-content:stretch}.action-bar .btn{flex:1}.config-row{grid-template-columns:36px 1fr 75px 40px}.config-row .order-field{display:none}}
@media(max-width:560px){.main{padding-left:9px;padding-right:9px}.topbar{align-items:flex-start}.top-actions{justify-content:flex-end}.card{padding:13px;border-radius:15px}.kpis{gap:8px}.kpi{padding:12px}.kpi strong{font-size:22px}.module-card{min-height:155px}.round-table{font-size:12px;min-width:720px}.round-table th,.round-table td{padding:8px 7px}.session-cards{grid-template-columns:repeat(2,1fr)}.brand-title{font-size:46px}.splash-art{width:82%}.nee-row{grid-template-columns:62px 80px 1fr 32px}}
@media print{body{background:white;color:black}.sidebar,.bottom-nav,.top-actions,.action-bar,.tabs,.mobile-hint,.toast,.update-banner{display:none!important}.layout{display:block}.main{padding:0}.card,.table-wrap{box-shadow:none;border-color:#999;background:white}.round-table{color:#000;background:#fff;min-width:0;font-size:10px}.round-table th,.round-table td{border-color:#aaa}.round-table thead th,.round-table tfoot td,.round-table .sticky-level{position:static;background:#eee;color:#000}.topbar h1{color:#000}.sub,.legend{color:#333}}

.splash-panel .btn.full{margin-top:10px}.auth-field{margin:0 0 4px;text-align:left}

/* v0.3 · calendari/rotació i NEE editable */
.nee-row{grid-template-columns:78px minmax(112px,auto) minmax(150px,1fr) auto}
.nee-block-label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;white-space:nowrap}
.nee-remove{white-space:nowrap}
.rotation-start-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.rotation-start{display:grid;grid-template-columns:26px minmax(70px,1fr) minmax(120px,1.4fr);gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:10px;background:#11152e}
.calendar-event-form{display:grid;grid-template-columns:1.3fr 1fr 1fr auto;gap:8px;align-items:end}
.calendar-event-list{display:flex;flex-direction:column;gap:8px;margin-top:10px;max-height:250px;overflow:auto}
.calendar-event{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;border:1px solid var(--line);border-radius:10px;background:#11152e}
.override-field{max-width:340px;margin-bottom:12px}
.rotation-table{display:flex;flex-direction:column;gap:7px}
.rotation-row{display:grid;grid-template-columns:26px minmax(80px,1fr) minmax(110px,1.1fr) minmax(150px,1.4fr);gap:8px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#11152e}
.planner-list{display:flex;flex-direction:column;gap:8px}
.planner-row{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(180px,1fr) auto;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:11px;background:#10142d}
.chip-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}
.group-chip{--chip:#24b8bc;border:1px solid color-mix(in srgb,var(--chip),#fff 18%);background:color-mix(in srgb,var(--chip),transparent 84%);color:#fff;padding:4px 7px;border-radius:999px;font-size:11px}
.btn.success{border-color:rgba(52,168,83,.5);background:rgba(52,168,83,.12);color:#a9efb8}
@media(max-width:980px){.rotation-start-grid{grid-template-columns:1fr}.calendar-event-form{grid-template-columns:1fr 1fr}.calendar-event-form .field:first-child{grid-column:1/-1}.planner-row{grid-template-columns:1fr}.rotation-row{grid-template-columns:26px 1fr 1fr}.rotation-row span:last-child{grid-column:2/-1}.nee-row{grid-template-columns:72px 1fr}.nee-row select,.nee-remove{grid-column:1/-1}}
@media(max-width:560px){.calendar-event-form{grid-template-columns:1fr}.calendar-event-form .field:first-child{grid-column:auto}.rotation-start{grid-template-columns:24px 80px 1fr}.planner-row{padding:9px}.nee-row{grid-template-columns:1fr}.nee-block-label,.nee-row select,.nee-remove{grid-column:auto}}
