:root{--bg:#f6f4fb;--panel:#fff;--panel2:#faf8ff;--text:#211a2d;--muted:#776d84;--line:#e8e1ef;--purple:#6d28d9;--purple2:#7c3aed;--purpleSoft:#f1eafd;--danger:#dc2626;--work:#2563eb;--school:#7c3aed;--personal:#059669;--shadow:0 18px 50px rgba(46,28,72,.10)}
html[data-theme="dark"]{--bg:#110d18;--panel:#1b1525;--panel2:#221a2f;--text:#f7f1ff;--muted:#b9aec7;--line:#332743;--purple:#8b5cf6;--purple2:#a78bfa;--purpleSoft:#2b1e3f;--shadow:0 18px 50px rgba(0,0,0,.28)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted)}
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 18% 15%,rgba(109,40,217,.14),transparent 32%),radial-gradient(circle at 82% 84%,rgba(124,58,237,.10),transparent 30%),var(--bg)}.auth-card{width:min(100%,450px);background:var(--panel);border:1px solid var(--line);border-radius:28px;padding:30px;box-shadow:var(--shadow)}
.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:20px}.auth-brand h1{margin:0;font-size:28px}.auth-brand p{margin:3px 0 0;color:var(--muted)}.logo{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--purple),#9333ea);color:#fff;font-weight:900;font-size:24px;box-shadow:0 12px 24px rgba(109,40,217,.25)}.logo.small{width:40px;height:40px;border-radius:12px;font-size:18px}
.firebase-status{font-size:12px;font-weight:800;border-radius:12px;padding:10px 12px;margin-bottom:16px}.firebase-status.loading{background:#f5f3ff;color:#6d28d9}.firebase-status.ok{background:#ecfdf5;color:#047857}.firebase-status.error{background:#fef2f2;color:#b91c1c}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;padding:5px;background:var(--panel2);border-radius:13px;margin-bottom:18px}.auth-tab{border:0;background:transparent;padding:10px;border-radius:10px;font-weight:800;color:var(--muted)}.auth-tab.active{background:var(--panel);color:var(--purple);box-shadow:0 3px 10px rgba(0,0,0,.06)}.auth-form{display:grid;gap:14px}.auth-note{font-size:12px;text-align:center;color:var(--muted);line-height:1.5;margin:16px 0 0}.auth-error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;border-radius:12px;padding:11px;font-size:12px;font-weight:700}.version{text-align:center;margin-top:16px;color:var(--muted);font-size:10px}
label{display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:800}.label-help{font-weight:500}input,textarea,select{width:100%;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:12px;padding:11px 12px;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--purple2);box-shadow:0 0 0 4px rgba(124,58,237,.11)}textarea{resize:vertical}.btn{border:1px solid transparent;border-radius:12px;padding:10px 14px;font-weight:850}.btn.primary{background:linear-gradient(135deg,var(--purple),var(--purple2));color:#fff;box-shadow:0 9px 20px rgba(109,40,217,.20)}.btn.secondary{background:var(--panel);border-color:var(--line);color:var(--text)}.btn.danger{background:var(--danger);color:white}.wide{width:100%}.icon-btn{border:0;background:transparent;color:var(--muted);font-size:23px;padding:6px}
.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{height:100vh;position:sticky;top:0;background:var(--panel);border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;z-index:30}.sidebar-brand{display:flex;align-items:center;gap:11px;padding:3px 7px 20px}.sidebar-brand strong,.sidebar-brand span{display:block}.sidebar-brand span{font-size:11px;color:var(--muted);margin-top:2px}.nav{display:grid;gap:5px}.nav-btn,.area-btn{border:0;background:transparent;color:var(--muted);border-radius:11px;padding:10px 12px;text-align:left;font-weight:780;display:flex;gap:10px;align-items:center}.nav-btn.active{background:var(--purpleSoft);color:var(--purple)}.sidebar-section{border-top:1px solid var(--line);margin-top:22px;padding-top:16px}.sidebar-section>p{font-size:9px;letter-spacing:.15em;font-weight:900;color:var(--muted);padding:0 12px}.area-btn.active{background:var(--panel2);color:var(--text)}.dot{width:8px;height:8px;border-radius:50%}.dot.all{background:#64748b}.dot.work{background:var(--work)}.dot.school{background:var(--school)}.dot.personal{background:var(--personal)}.sidebar-bottom{margin-top:auto;display:grid;gap:9px}.sync-status{font-size:11px;font-weight:800;text-align:center;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:8px}
.main{min-width:0;padding:26px 32px 60px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px}.title-row{display:flex;align-items:center;gap:8px}.eyebrow{margin:0;color:var(--muted);font-size:9px;letter-spacing:.16em;font-weight:900;text-transform:uppercase}.topbar h1{margin:2px 0 0;font-size:clamp(26px,4vw,34px)}.top-actions{display:flex;align-items:center;gap:10px}.search-wrap{position:relative}.search-wrap>input{width:min(36vw,360px)}.search-results{position:absolute;top:calc(100% + 7px);left:0;right:0;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);z-index:40;max-height:350px;overflow:auto;padding:6px}.search-item{padding:9px;border-radius:9px}.search-item:hover{background:var(--panel2)}.search-item strong,.search-item span{display:block}.search-item span{font-size:10px;color:var(--muted);margin-top:2px}
.hero{background:linear-gradient(135deg,#4c1d95,#7c3aed 62%,#9333ea);color:#fff;border-radius:23px;padding:25px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 16px 38px rgba(109,40,217,.23)}.hero h2{margin:5px 0;font-size:25px}.hero p{margin:0;color:#ede9fe}.hero .big{font-size:40px;font-weight:900;text-align:center}.hero .big span{font-size:11px;display:block;font-weight:700}.grid2{display:grid;grid-template-columns:1.35fr .85fr;gap:18px;margin-top:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 8px 24px rgba(29,17,45,.04)}.card-head{padding:17px 18px 12px;display:flex;justify-content:space-between;align-items:center;gap:12px}.card-head h2{margin:0;font-size:16px}.card-body{padding:0 18px 18px}.empty{padding:28px 16px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);text-align:center;background:var(--panel2)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--panel2)}.stat strong{display:block;font-size:24px}.stat span{font-size:10px;color:var(--muted);font-weight:750}
.list{display:grid;gap:9px}.list-item{border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:12px;display:grid;grid-template-columns:68px 1fr auto;gap:11px;align-items:center}.list-time{font-size:11px;color:var(--muted);font-weight:850}.list-title{font-size:13px;font-weight:850}.list-meta{font-size:10px;color:var(--muted);margin-top:3px}.badge{display:inline-block;font-size:9px;font-weight:900;border-radius:999px;padding:5px 7px;background:var(--panel2);color:var(--muted)}.badge.Trabajo{background:#eff6ff;color:#2563eb}.badge.Escuela{background:#f3e8ff;color:#7e22ce}.badge.Personal{background:#ecfdf5;color:#047857}.check{width:21px;height:21px;border:1.5px solid var(--line);border-radius:7px;background:var(--panel);color:#fff;padding:0}.check.done{background:#16a34a;border-color:#16a34a}.task-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.task-row:last-child{border-bottom:0}.task-row.completed .task-main{text-decoration:line-through;color:var(--muted)}
.chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:13px}.chip{border:1px solid var(--line);background:var(--panel);color:var(--muted);padding:8px 11px;border-radius:999px;font-size:11px;font-weight:800}.chip.active{background:var(--purpleSoft);border-color:#d8b4fe;color:var(--purple)}
.calendar-shell{background:var(--panel);border:1px solid var(--line);border-radius:18px;overflow:hidden}.calendar-toolbar{padding:15px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.calendar-toolbar h2{margin:0;font-size:16px;text-transform:capitalize}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-weekdays div{padding:9px;font-size:9px;font-weight:900;color:var(--muted);text-align:center;background:var(--panel2)}.day-cell{min-height:112px;padding:7px;border-right:1px solid var(--line);border-top:1px solid var(--line);overflow:hidden}.day-cell:nth-child(7n){border-right:0}.day-cell.out{opacity:.45}.day-cell.today{background:var(--purpleSoft)}.day-number{font-size:11px;font-weight:850;width:25px;height:25px;display:grid;place-items:center;border-radius:7px}.today .day-number{background:var(--purple);color:#fff}.cal-event{font-size:8.5px;font-weight:800;padding:4px 5px;border-radius:6px;margin-top:4px;background:var(--panel2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event.Escuela{color:var(--purple);background:var(--purpleSoft)}
.subjects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:13px}.subject-card{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:16px;cursor:pointer;transition:.18s}.subject-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.subject-icon{width:40px;height:40px;border-radius:12px;background:var(--purpleSoft);color:var(--purple);display:grid;place-items:center;font-weight:900;margin-bottom:12px}.subject-card h3{margin:0 0 6px}.subject-card p{font-size:11px;color:var(--muted);margin:0;line-height:1.45}.subject-stats{display:flex;gap:12px;margin-top:13px;color:var(--muted);font-size:10px;font-weight:800}
.subject-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0 4px}.subject-tab{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:8px 11px;font-size:10px;font-weight:850}.subject-tab.active{background:var(--purpleSoft);color:var(--purple);border-color:#d8b4fe}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.photo-card,.file-card{border:1px solid var(--line);background:var(--panel2);border-radius:13px;padding:10px;cursor:pointer}.photo-card img{width:100%;height:120px;object-fit:cover;border-radius:9px;display:block;margin-bottom:8px}.photo-card strong,.file-card strong{font-size:11px;display:block;overflow-wrap:anywhere}.file-icon{font-size:28px;margin-bottom:8px}.media-actions{display:flex;gap:6px;margin-top:8px}
.schedule-shell{background:var(--panel);border:1px solid var(--line);border-radius:18px;overflow:hidden}.schedule-toolbar{padding:15px 16px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.schedule-scroller{overflow:auto}.timeline{position:relative;min-width:900px;display:grid;grid-template-columns:72px repeat(6,1fr);grid-template-rows:38px repeat(28,34px);background:var(--panel)}.timeline>.day-head{grid-row:1;background:var(--panel2);padding:11px 6px;text-align:center;font-size:10px;font-weight:900;color:var(--muted);border-right:1px solid var(--line);border-bottom:1px solid var(--line);z-index:2}.time-label{font-size:9px;font-weight:800;color:var(--muted);padding:4px 8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel2);z-index:1}.time-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}.class-block{margin:3px 4px;border-radius:10px;padding:7px;background:linear-gradient(135deg,var(--purple),var(--purple2));color:white;font-size:9px;font-weight:800;box-shadow:0 6px 16px rgba(109,40,217,.2);z-index:5;overflow:hidden;cursor:pointer}.class-block strong{display:block;font-size:10px;margin-bottom:2px}.class-block span{opacity:.9}
.notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:13px}.note-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px;min-height:150px;cursor:pointer}.note-card h3{margin:9px 0 6px;font-size:14px}.note-card p{font-size:12px;color:var(--muted);line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.dialog{width:min(92vw,610px);border:0;padding:0;border-radius:22px;background:var(--panel);color:var(--text);box-shadow:0 28px 90px rgba(0,0,0,.3)}.dialog::backdrop{background:rgba(13,8,20,.55);backdrop-filter:blur(3px)}.dialog form,.subject-detail,.viewer{padding:22px;display:grid;gap:14px}.wide-dialog{width:min(95vw,980px)}.small-dialog{width:min(92vw,480px)}.viewer-dialog{width:min(96vw,900px)}.dialog-head{display:flex;justify-content:space-between;align-items:start}.dialog-head h2{margin:3px 0 0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dialog-actions{display:grid;grid-template-columns:auto 1fr auto auto;gap:9px;align-items:center}.dialog-actions.compact{grid-template-columns:1fr 1fr auto auto}.subject-actions{display:flex;gap:8px;flex-wrap:wrap}.detail-section{margin-top:10px}.detail-section h3{font-size:13px;margin:0 0 9px}.attachment-preview{border:1px dashed var(--line);border-radius:13px;padding:12px;background:var(--panel2);text-align:center}.attachment-preview img{max-width:100%;max-height:220px;border-radius:10px}.viewer-image{display:block;max-width:100%;max-height:70vh;margin:auto;border-radius:12px}.file-view{padding:25px;text-align:center;background:var(--panel2);border-radius:14px}.file-view .file-icon{font-size:54px}.file-view a{display:inline-block;margin-top:12px}
.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,140%);opacity:0;background:#1f172a;color:white;padding:11px 15px;border-radius:999px;font-size:11px;font-weight:800;z-index:100;transition:.25s}.toast.show{transform:translate(-50%,0);opacity:1}.overlay{display:none}.mobile-only{display:none}
@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;width:min(82vw,285px);transform:translateX(-105%);transition:.23s;box-shadow:var(--shadow)}.sidebar.open{transform:translateX(0)}.overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:20;display:block}.main{padding:18px 14px 70px}.mobile-only{display:inline-flex}.sidebar-brand .mobile-only{margin-left:auto}.grid2{grid-template-columns:1fr}.topbar{align-items:flex-end}.search-wrap>input{width:240px}.calendar-shell{overflow-x:auto}.calendar-weekdays,.calendar-grid{min-width:720px}}
@media(max-width:600px){.auth-card{padding:22px}.main{padding:14px 11px 70px}.topbar{gap:10px}.top-actions{gap:7px}.search-wrap{display:none}.top-actions .btn{padding:9px 10px;font-size:11px}.hero{padding:20px}.hero .big{display:none}.stats{grid-template-columns:1fr 1fr}.stats .stat:last-child{grid-column:1/-1}.list-item{grid-template-columns:54px 1fr}.list-item>button,.list-item>.badge{grid-column:2}.two-col{grid-template-columns:1fr}.dialog-actions{grid-template-columns:1fr 1fr}.dialog-actions span{display:none}.dialog-actions .danger{grid-column:1/-1}.subject-actions .btn{flex:1 1 42%}.subjects-grid,.notes-grid{grid-template-columns:1fr}.media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-card img{height:100px}}
