:root{
  --bg:#eef0f3; --surface:#ffffff; --surface-2:#f5f6f8; --line:#dde1e6; --line-2:#c9cfd6;
  --text:#101215; --muted:#5d6570; --faint:#8b929c;
  --accent:#5a6f86; --accent-soft:rgba(90,111,134,.12);
  --st-nueva:#5a6f86; --st-desarrollo:#8a7a55; --st-pausa:#8b929c; --st-hecha:#5d8470;
  --danger:#a14f4f; --shadow:0 18px 40px -24px rgba(16,18,21,.35);
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#000; --surface:#121417; --surface-2:#191c20; --line:#24282e; --line-2:#323840;
    --text:#eceef1; --muted:#9aa1ab; --faint:#666d77;
    --accent:#8ea2b8; --accent-soft:rgba(142,162,184,.10);
    --st-nueva:#8ea2b8; --st-desarrollo:#b9a77c; --st-pausa:#6f7680; --st-hecha:#86a996;
    --danger:#c77272; --shadow:0 24px 60px -30px rgba(0,0,0,.9);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#000; --surface:#121417; --surface-2:#191c20; --line:#24282e; --line-2:#323840;
  --text:#eceef1; --muted:#9aa1ab; --faint:#666d77;
  --accent:#8ea2b8; --accent-soft:rgba(142,162,184,.10);
  --st-nueva:#8ea2b8; --st-desarrollo:#b9a77c; --st-pausa:#6f7680; --st-hecha:#86a996;
  --danger:#c77272; --shadow:0 24px 60px -30px rgba(0,0,0,.9);
  color-scheme:dark;
}
:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--text);font-family:"Geist",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}
svg{display:block}

.wrap{max-width:1240px;margin:0 auto;padding:28px 24px 64px}

/* Encabezado */
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:40px}
.brand{display:flex;align-items:center;gap:14px}
/* Logo: punto rojo, línea, punto verde, línea, punto amarillo, línea */
.logo{width:92px;height:18px;flex:none;overflow:visible}
.logo .ln{stroke:var(--line-2);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:24;stroke-dashoffset:0}
.logo .d1{fill:#e5484d}.logo .d2{fill:#3fb27f}.logo .d3{fill:#f2c94c}
.logo circle{transform-box:fill-box;transform-origin:center}
.intro .logo circle{animation:dotIn .45s cubic-bezier(.3,1.6,.5,1) both}
.intro .logo .ln{animation:lineIn .35s ease-out both}
.intro .logo .d1{animation-delay:.10s}.intro .logo .l1{animation-delay:.30s}
.intro .logo .d2{animation-delay:.55s}.intro .logo .l2{animation-delay:.75s}
.intro .logo .d3{animation-delay:1.0s}.intro .logo .l3{animation-delay:1.2s}
@keyframes dotIn{from{transform:scale(0)}to{transform:scale(1)}}
@keyframes lineIn{from{stroke-dashoffset:24}to{stroke-dashoffset:0}}
.intro .brand h1,.intro .brand p,.intro .top-right,.intro .nav,.intro .capture,.intro .filters,.intro .board,.intro .list,.intro #schedView{animation:rise .6s cubic-bezier(.2,.8,.2,1) both}
.intro .brand h1{animation-delay:.35s}.intro .brand p{animation-delay:.45s}
.intro .top-right{animation-delay:.5s}.intro .nav{animation-delay:.6s}
.intro .capture,.intro #schedView{animation-delay:.7s}.intro .filters{animation-delay:.85s}
.intro .board,.intro .list{animation-delay:.95s}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* Animaciones de interacción */
.card.enter{animation:cardIn .5s cubic-bezier(.2,1.2,.4,1) both}
@keyframes cardIn{from{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:none}}
.card.moved{animation:moved .9s ease}
@keyframes moved{0%{box-shadow:0 0 0 2px var(--accent)}100%{box-shadow:0 0 0 0 transparent}}
.swap{animation:swap .35s cubic-bezier(.2,.8,.2,1)}
@keyframes swap{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.theme-fade,.theme-fade *{transition:background-color .35s,border-color .35s,color .35s!important}
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
.theme-ic .sun{display:none}
:root[data-theme="light"] .theme-ic .sun{display:block}
:root[data-theme="light"] .theme-ic .moon{display:none}
.theme-ic svg{animation:spinIn .45s cubic-bezier(.2,.8,.2,1)}
@keyframes spinIn{from{transform:rotate(-90deg) scale(.6);opacity:0}to{transform:none;opacity:1}}
.brand h1{margin:0;font-size:17px;font-weight:500;letter-spacing:-.01em}
.brand p{margin:0;font-size:13px;color:var(--faint)}
.top-actions{display:flex;gap:8px;align-items:center}
.search{position:relative}
.search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--faint);pointer-events:none}
.search input{width:220px;height:38px;padding:0 12px 0 34px;border-radius:10px;border:1px solid var(--line);background:var(--surface);outline:none;transition:border-color .15s}
.search input:focus{border-color:var(--line-2)}
.search input::placeholder{color:var(--faint)}
.seg{display:flex;padding:3px;border-radius:10px;border:1px solid var(--line);background:var(--surface)}
.seg button{height:30px;padding:0 12px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:13px;display:flex;align-items:center;gap:6px}
.seg button[aria-pressed="true"]{background:var(--surface-2);color:var(--text)}

/* Captura */
.capture{margin-bottom:28px}
.capture-q{font-size:clamp(28px,4.4vw,46px);font-weight:300;letter-spacing:-.03em;line-height:1.1;margin:0 0 20px;color:var(--text)}
.capture-q .caret{display:inline-block;width:.06em;height:.9em;background:var(--accent);margin-left:.08em;vertical-align:-.08em;animation:blink 1.1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.box{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:6px;box-shadow:var(--shadow);transition:border-color .2s}
.box:focus-within{border-color:var(--line-2)}
.box textarea{display:block;width:100%;min-height:58px;max-height:200px;resize:none;border:0;background:transparent;outline:none;padding:14px 16px 6px;font-size:17px;line-height:1.45}
.box textarea::placeholder{color:var(--faint)}
.box-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 6px 6px 12px;flex-wrap:wrap}
.opts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* Herramientas superiores */
.top-right{display:flex;gap:8px;align-items:center}
.tool{height:38px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--muted);display:flex;align-items:center;gap:7px;font-size:13px}
.tool:hover{color:var(--text);border-color:var(--line-2)}
.slot-l{flex-direction:column;align-items:flex-start;justify-content:center;gap:1px}
.slot-l small{font-size:11px;color:var(--faint);opacity:.85;white-space:nowrap}
.grid{grid-template-columns:96px repeat(5,minmax(0,1fr))}

/* Modo reposo */
.rest{position:fixed;inset:0;z-index:60;background:var(--r-bg);color:var(--r-text);display:none;padding:calc(64px + env(safe-area-inset-top,0px)) 40px calc(30px + env(safe-area-inset-bottom,0px));overflow:hidden;
  --r-bg:#000;--r-text:#eceef1;--r-soft:#c5cad1;--r-hl:#15181c;--r-edge:#2a2f36;--r-edge2:#3a4048;
  --r-muted:#8c939d;--r-faint:#555c66;--r-line:#1d2025;--r-surface:#0c0e10;--r-accent:#8ea2b8}
:root[data-theme="light"] .rest{--r-bg:#eef0f3;--r-text:#101215;--r-soft:#2c3036;--r-hl:#ffffff;--r-edge:#d3d8de;--r-edge2:#b8bfc8;
  --r-muted:#5d6570;--r-faint:#9aa1ab;--r-line:#dde1e6;--r-surface:#f8f9fa;--r-accent:#5a6f86}
.rest.open{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:48px;animation:restIn .6s ease}
@keyframes restIn{from{opacity:0}to{opacity:1}}
.rest-left{display:flex;flex-direction:column;min-height:0}
.r-clock{font-weight:200;font-size:clamp(84px,14vw,210px);line-height:.9;letter-spacing:-.055em;font-variant-numeric:tabular-nums;display:flex;align-items:baseline}
.r-clock .sec{font-size:.22em;letter-spacing:0;color:var(--r-faint);margin-left:.35em;font-weight:300}
.r-clock .ap{font-size:.16em;letter-spacing:0;color:var(--r-muted);margin-left:.5em;font-weight:400}
.r-date{font-size:clamp(17px,1.8vw,24px);font-weight:300;color:var(--r-muted);margin:14px 0 0;text-transform:none}
.r-now{margin-top:auto;padding:22px 24px;border:1px solid var(--r-line);border-radius:20px;background:var(--r-surface);max-width:560px}
.r-now .k{font-size:13px;color:var(--r-muted);margin-bottom:6px;display:flex;align-items:center;gap:8px}
.r-now .k .live{width:7px;height:7px;border-radius:50%;background:var(--r-accent);animation:pulse 2s ease-in-out infinite}
@keyframes pulse{50%{opacity:.25}}
.r-now .big{font-size:clamp(24px,2.6vw,34px);font-weight:400;letter-spacing:-.02em;display:flex;align-items:center;gap:12px}
.r-now .big .cm,.r-now .big .cm .sw{width:14px;height:14px}
.r-now .big .cm .flag{width:20px;height:14px}
.r-prog{height:3px;border-radius:3px;background:var(--r-line);margin:16px 0 10px;overflow:hidden}
.r-prog i{display:block;height:100%;background:var(--r-accent);border-radius:3px;transition:width 1s linear}
.r-now .foot2{display:flex;justify-content:space-between;font-size:13px;color:var(--r-muted);gap:12px;flex-wrap:wrap}
.r-cal{margin-top:28px;max-width:340px}
.r-cal h4{margin:0 0 10px;font-size:14px;font-weight:400;color:var(--r-muted)}
.r-cal .cg{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center;font-size:12.5px;font-variant-numeric:tabular-nums}
.r-cal .cg span{height:30px;display:grid;place-items:center;border-radius:8px;color:var(--r-soft)}
.r-cal .cg .wd{color:var(--r-faint);font-size:11.5px;height:22px}
.r-cal .cg .we{color:var(--r-faint)}
.r-cal .cg .td{background:var(--r-text);color:var(--r-bg);font-weight:500}
.rest-right{display:flex;flex-direction:column;gap:22px;min-height:0}
.r-card{border:1px solid var(--r-line);border-radius:20px;background:var(--r-surface);padding:20px 20px 14px;display:flex;flex-direction:column;min-height:0}
.r-card h4{margin:0 0 12px;font-size:14px;font-weight:400;color:var(--r-muted);display:flex;justify-content:space-between}
.r-card h4 span{color:var(--r-faint)}
.r-sched{display:flex;flex-direction:column}
.r-item{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 4px;border-radius:10px;font-size:14.5px}
.r-item time{font-size:12.5px;color:var(--r-muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.r-item.past{opacity:.35}
.r-item.cur{background:var(--r-hl);box-shadow:inset 0 0 0 1px var(--r-edge);padding-left:10px;padding-right:10px;margin:0 -6px}
.r-brk{font-size:12px;color:var(--r-faint);padding:4px 4px 4px 30px;display:flex;justify-content:space-between}
.r-brk.cur{color:var(--r-accent)}
.r-tasks{overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:var(--r-edge) transparent}
.r-task{display:flex;align-items:flex-start;gap:12px;padding:10px 2px;border-bottom:1px solid var(--r-line);transition:opacity .35s}
.r-task:last-child{border-bottom:0}
.r-task.leaving{opacity:0}
.r-check{flex:none;width:22px;height:22px;border-radius:7px;border:1.5px solid var(--r-edge2);background:transparent;display:grid;place-items:center;color:var(--r-bg);margin-top:1px;transition:background .15s,border-color .15s}
.r-check:hover{border-color:var(--r-accent)}
.r-check.on{background:var(--r-text);border-color:var(--r-text)}
.r-check svg{opacity:0}
.r-check.on svg{opacity:1}
.r-task .tt{flex:1;min-width:0}
.r-task .tt b{display:block;font-weight:400;font-size:14.5px;line-height:1.35}
.r-task.leaving .tt b{text-decoration:line-through;color:var(--r-muted)}
.r-task .tt span{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--r-muted);margin-top:3px}
.r-empty{font-size:13.5px;color:var(--r-faint);padding:10px 2px}
.r-ctrl{position:absolute;top:calc(16px + env(safe-area-inset-top,0px));right:18px;display:flex;gap:6px;transition:opacity .5s}
.rest.idle .r-ctrl{opacity:0}
.rest.idle{cursor:none}
.r-btn{height:36px;padding:0 12px;border-radius:10px;border:1px solid var(--r-edge);background:var(--r-surface);color:var(--r-soft);font-size:13px;display:flex;align-items:center;gap:7px}
.r-btn:hover{border-color:var(--r-edge2);color:var(--r-text)}
@media (max-width:900px){
  .rest.open{grid-template-columns:1fr;overflow-y:auto;gap:26px;padding:calc(64px + env(safe-area-inset-top,0px)) 20px calc(24px + env(safe-area-inset-bottom,0px))}
  .r-now{margin-top:24px}
  .r-tasks{overflow:visible}
}

/* Selector propio */
.picker-btn{height:32px;max-width:260px;padding:0 10px 0 11px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);font-size:13px;color:var(--text);display:inline-flex;align-items:center;gap:8px;transition:border-color .15s}
.picker-btn:hover,.picker-btn[aria-expanded="true"]{border-color:var(--line-2)}
.picker-btn .lbl-txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.picker-btn .chev{color:var(--faint);transition:transform .2s;flex:none}
.picker-btn[aria-expanded="true"] .chev{transform:rotate(180deg)}
.picker-btn.big{width:100%;max-width:none;height:40px;border-radius:10px;padding:0 12px;font-size:14px}
.picker-btn.big .lbl-txt{flex:1;text-align:left}
.pop{position:fixed;z-index:50;width:290px;max-height:min(420px,70vh);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line-2);border-radius:14px;box-shadow:0 30px 60px -20px rgba(0,0,0,.6);opacity:0;transform:translateY(-4px) scale(.98);transform-origin:top left;pointer-events:none;transition:opacity .14s,transform .14s}
.pop.open{opacity:1;transform:none;pointer-events:auto}
.pop.up{transform-origin:bottom left}
.pop-search{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);color:var(--faint)}
.pop-search input{flex:1;border:0;background:transparent;outline:none;font-size:14px;color:var(--text)}
.pop-search input::placeholder{color:var(--faint)}
.pop-list{overflow-y:auto;padding:6px;overscroll-behavior:contain}
.pop-group{font-size:11.5px;color:var(--faint);padding:10px 10px 4px}
.pop-item{width:100%;height:36px;display:flex;align-items:center;gap:10px;padding:0 10px;border:0;border-radius:9px;background:transparent;font-size:13.5px;text-align:left;color:var(--text)}
.cm-empty{width:12px;height:12px;border-radius:50%;border:1.5px solid var(--line-2);flex:none}
.pop-item .ck{margin-left:auto;color:var(--accent);opacity:0}
.pop-item[aria-selected="true"] .ck{opacity:1}
.pop-item.hl{background:var(--surface-2)}
.pop-item.create{color:var(--muted)}
.pop-empty{padding:14px 10px;font-size:13px;color:var(--faint)}
@media (max-width:640px){
  .pop{left:8px!important;right:8px;width:auto!important;top:auto!important;bottom:calc(8px + env(safe-area-inset-bottom,0px))!important;max-height:65vh;transform:translateY(12px);border-radius:18px}
  .pop.open{transform:none}
  .pop-item{height:42px}
}
.prio{display:flex;gap:2px;padding:3px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2)}
.prio button{height:24px;padding:0 10px;border:0;border-radius:999px;background:transparent;font-size:12.5px;color:var(--faint)}
.prio button[aria-pressed="true"]{background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--line)}
.btn-primary{height:38px;padding:0 16px;border:0;border-radius:11px;background:var(--text);color:var(--bg);font-weight:500;font-size:14px;display:flex;align-items:center;gap:8px;transition:opacity .15s}
.btn-primary:disabled{opacity:.3;cursor:default}
.hint{margin:10px 4px 0;font-size:12.5px;color:var(--faint)}
kbd{font:inherit;font-size:11.5px;padding:1px 6px;border-radius:5px;border:1px solid var(--line);background:var(--surface)}

/* Filtros */
.filters{display:flex;gap:6px;margin:28px 0 18px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.filters::-webkit-scrollbar{display:none}
.chip{flex:none;height:32px;padding:0 13px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:13px;display:flex;align-items:center;gap:7px}
.chip .n{color:var(--faint);font-size:12px}
.chip[aria-pressed="true"]{background:var(--surface);color:var(--text);border-color:var(--line-2)}

/* Tablero */
.tabs{display:none}
.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start}
.col{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;padding:10px;min-height:180px;transition:border-color .15s,background .15s}
.col.drop{border-color:var(--accent);background:var(--accent-soft)}
.col-head{display:flex;align-items:center;gap:9px;padding:6px 6px 12px}
.dot{width:7px;height:7px;border-radius:50%;flex:none}
.col-head h2{margin:0;font-size:13.5px;font-weight:500}
.col-head .n{margin-left:auto;font-size:12px;color:var(--faint)}
.col-list{display:flex;flex-direction:column;gap:8px;min-height:40px}
.col-empty{font-size:13px;color:var(--faint);padding:14px 8px 18px;text-align:center;border:1px dashed var(--line);border-radius:12px}

.card{position:relative;text-align:left;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 13px 11px;display:block;transition:border-color .15s,transform .15s}
.card:hover{border-color:var(--line-2)}
.card.dragging{opacity:.4}
.card h3{margin:0 0 4px;font-size:14.5px;font-weight:500;line-height:1.35;word-break:break-word}
.card.done h3{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--faint)}
.card p{margin:0 0 10px;font-size:13px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--faint)}
.tag{padding:2px 8px;border-radius:6px;background:var(--surface-2);border:1px solid var(--line);color:var(--muted)}
.bars{display:flex;gap:2px;align-items:flex-end;height:11px}
.bars i{width:3px;border-radius:1px;background:var(--line-2)}
.bars i:nth-child(1){height:5px}.bars i:nth-child(2){height:8px}.bars i:nth-child(3){height:11px}
.bars i.on{background:var(--accent)}
.meta .date{margin-left:auto}

/* Lista */
.list{display:none;background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.view-list .board,.view-list .tabs{display:none!important}
.view-list .list{display:block}
.row{display:grid;grid-template-columns:18px minmax(0,1fr) auto auto auto;gap:14px;align-items:center;width:100%;padding:14px 18px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left}
.row:last-child{border-bottom:0}
.row:hover{background:var(--surface-2)}
.row .t{min-width:0}
.row .t b{display:block;font-weight:500;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .t span{display:block;font-size:13px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .st{font-size:12.5px;color:var(--muted);min-width:96px}
.row .date{font-size:12px;color:var(--faint);min-width:58px;text-align:right}

.empty-all{text-align:center;padding:60px 20px;color:var(--muted)}
.empty-all b{display:block;color:var(--text);font-weight:500;font-size:16px;margin-bottom:4px}

.foot{margin-top:36px;display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--faint)}
.foot .sync{width:6px;height:6px;border-radius:50%;background:var(--faint)}
.foot .sync.on{background:var(--st-hecha)}

/* Panel de detalle */
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:opacity .2s;z-index:20}
.scrim.open{opacity:1;pointer-events:auto}
.panel{position:fixed;top:0;right:0;bottom:0;width:min(460px,100%);background:var(--surface);border-left:1px solid var(--line);z-index:21;transform:translateX(100%);transition:transform .28s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.panel.open{transform:none}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}
.panel-head span{font-size:13px;color:var(--faint)}
.icon-btn{width:34px;height:34px;border-radius:9px;border:1px solid transparent;background:transparent;display:grid;place-items:center;color:var(--muted)}
.icon-btn:hover{background:var(--surface-2);border-color:var(--line)}
.panel-body{flex:1;overflow-y:auto;padding:22px 22px 30px}
.f-title{width:100%;border:0;background:transparent;outline:none;font-size:24px;font-weight:500;letter-spacing:-.02em;line-height:1.25;resize:none;padding:0;margin-bottom:22px}
.field{margin-bottom:20px}
.field>label,.field>.lbl{display:block;font-size:12.5px;color:var(--faint);margin-bottom:8px}
.status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.status-grid button{height:38px;border-radius:10px;border:1px solid var(--line);background:transparent;font-size:12.5px;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:6px}
.status-grid button[aria-pressed="true"]{background:var(--surface-2);color:var(--text);border-color:var(--line-2)}
.f-notes{width:100%;min-height:180px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:12px 14px;outline:none;resize:vertical;line-height:1.55}
.f-notes:focus,.f-area:focus{border-color:var(--line-2)}
.f-area{width:100%;height:40px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);padding:0 12px;outline:none}
.row2{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:end}
.panel-foot{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-top:1px solid var(--line);font-size:12.5px;color:var(--faint)}
.btn-danger{height:36px;padding:0 14px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--danger);font-size:13px;display:flex;align-items:center;gap:7px}
.btn-danger:hover{border-color:var(--danger)}

/* Confirmación */
.dialog{position:fixed;inset:0;display:grid;place-items:center;z-index:30;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .15s;padding:20px}
.dialog.open{opacity:1;pointer-events:auto}
.dialog-box{background:var(--surface);border:1px solid var(--line-2);border-radius:16px;padding:22px;max-width:360px;width:100%;box-shadow:var(--shadow)}
.dialog-box h4{margin:0 0 6px;font-size:16px;font-weight:500}
.dialog-box p{margin:0 0 20px;font-size:14px;color:var(--muted)}
.dialog-actions{display:flex;justify-content:flex-end;gap:8px}
.btn-ghost{height:36px;padding:0 14px;border-radius:10px;border:1px solid var(--line);background:transparent;font-size:13.5px}
.btn-solid-danger{height:36px;padding:0 14px;border-radius:10px;border:0;background:var(--danger);color:#fff;font-size:13.5px;font-weight:500}

.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);background:var(--text);color:var(--bg);padding:10px 16px;border-radius:10px;font-size:13.5px;opacity:0;transition:.2s;z-index:40;pointer-events:none}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* Navegación principal */
.nav{display:flex;gap:26px;border-bottom:1px solid var(--line);margin:-12px 0 34px}
.nav button{border:0;background:transparent;padding:0 0 12px;font-size:15px;color:var(--faint);border-bottom:2px solid transparent;margin-bottom:-1px}
.nav button[aria-selected="true"]{color:var(--text);border-bottom-color:var(--text)}
.hidden{display:none!important}

/* Marcas de curso */
.cm{display:inline-flex;align-items:center;justify-content:center;flex:none;width:12px;height:12px}
.cm .sw{width:10px;height:10px;border-radius:3px;box-shadow:inset 0 0 0 1px rgba(128,128,128,.35)}
.cm .flag{width:14px;height:10px;border-radius:2px;background:linear-gradient(90deg,#2b4fb3 0 33.3%,#f4f4f2 33.3% 66.6%,#d64545 66.6%);box-shadow:inset 0 0 0 1px rgba(128,128,128,.35)}
.cm svg{width:14px;height:14px}
.tag{display:inline-flex;align-items:center;gap:6px}

/* Horario */
.sched-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.sched-head h2{margin:0;font-size:clamp(26px,3.6vw,38px);font-weight:300;letter-spacing:-.03em;line-height:1.1}
.sched-head p{margin:6px 0 0;color:var(--faint);font-size:13.5px}
.days-tabs{display:none}
.grid{display:grid;grid-template-columns:72px repeat(5,minmax(0,1fr));gap:8px}
.gh{font-size:13px;color:var(--muted);padding:0 4px 4px;display:flex;align-items:center;gap:8px}
.gh.today{color:var(--text)}
.gh.today::after{content:"Hoy";font-size:11px;padding:1px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent);border:1px solid var(--line-2)}
.slot-l{font-size:12px;color:var(--faint);display:flex;align-items:center}
.cell{position:relative;min-height:74px;border-radius:12px;border:1px solid var(--line);background:var(--surface);padding:11px 12px 10px 16px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;gap:8px;overflow:hidden;transition:border-color .15s}
.cell::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--c,var(--line-2))}
.cell:hover{border-color:var(--line-2)}
.d{display:flex}
.d .cell{width:100%}
.cell b{font-weight:500;font-size:13.5px;line-height:1.3}
.cell .sub{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--faint)}
.cell.free{background:transparent;border-style:dashed;justify-content:center;align-items:center;color:var(--faint);font-size:12.5px;padding-left:12px}
.cell.free::before{display:none}
.col-today .cell:not(.free){background:var(--surface-2)}
.brk{grid-column:2 / -1;display:flex;align-items:center;gap:12px;font-size:12px;color:var(--faint);padding:2px 4px}
.brk::before,.brk::after{content:"";flex:1;height:1px;background:var(--line)}
.brk-l{font-size:12px;color:var(--faint);display:flex;align-items:center}

.courses{margin-top:40px}
.courses h3{margin:0 0 14px;font-size:15px;font-weight:500}
.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.course{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:12px;border:1px solid var(--line);background:var(--surface);text-align:left}
.course:hover{border-color:var(--line-2)}
.course .nm{flex:1;min-width:0;font-size:13.5px}
.course .nm span{display:block;font-size:12px;color:var(--faint)}

@media (max-width:900px){
  .board{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .days-tabs{display:flex;gap:4px;margin-bottom:16px;padding:3px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
  .days-tabs button{flex:1;height:34px;border:0;border-radius:9px;background:transparent;font-size:13px;color:var(--muted)}
  .days-tabs button[aria-pressed="true"]{background:var(--surface-2);color:var(--text)}
  .grid{grid-template-columns:84px minmax(0,1fr)}
  .slot-l small{white-space:normal}
  .grid .d:not(.d-sel){display:none}
  .gh{display:none}
  .brk{grid-column:2 / -1}
  .cell{min-height:62px;flex-direction:row;align-items:center}
}
@media (max-width:640px){
  .wrap{padding:18px 16px 48px}
  .top{margin-bottom:28px}
  .brand p{display:none}
  .tool span{display:none}
  .tool{padding:0 11px}
  .top-right{gap:6px}
  .top{flex-wrap:wrap}
  .search input{width:130px}
  .seg button span{display:none}
  .tabs{display:flex;gap:4px;margin-bottom:12px;padding:3px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
  .tabs button{flex:1;height:34px;border:0;border-radius:9px;background:transparent;font-size:12.5px;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:6px}
  .tabs button[aria-pressed="true"]{background:var(--surface-2);color:var(--text)}
  .tabs .n{color:var(--faint)}
  .board{grid-template-columns:1fr}
  .col{display:none}
  .col.active{display:block}
  .col-head{display:none}
  .row{grid-template-columns:14px minmax(0,1fr) auto;gap:12px;padding:13px 14px}
  .row .st,.row .bars{display:none}
  .status-grid{grid-template-columns:repeat(2,1fr)}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
}
