:root{
  --bg:#e4e9f7;--surface:#ffffff;--surface-2:#f6f5ff;--primary:#695cfe;--primary-text:#4a3ce0;--primary-strong:#563be6;
  --primary-soft:#eeebff;--text:#1f2937;--muted:#5c6068;--border:#dde3ef;--danger:#d6455d;--success:#15936c;
  --warning:#c97a13;--shadow:0 18px 45px rgba(31,41,55,.09);--shadow-sm:0 8px 24px rgba(31,41,55,.07);
  --radius:18px;--radius-sm:12px;--sidebar:248px
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);scroll-behavior:smooth}
body{min-height:100vh;background:var(--bg);color:var(--text);font-family:"Poppins",sans-serif;font-size:14px;line-height:1.55}
body.dark{--primary-text:#b9b2ff;--bg:#18191a;--surface:#242526;--surface-2:#2e3032;--text:#f1f5f9;--muted:#b7bec8;--border:#3d4146;--primary-soft:#332f52;--shadow:0 18px 45px rgba(0,0,0,.3);--shadow-sm:0 8px 24px rgba(0,0,0,.24)}
a{color:var(--primary-text);text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
img{max-width:100%}
[hidden]{display:none!important}
:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 35%,transparent);outline-offset:3px}
.app-shell{display:min-height;min-height:100vh}
.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--surface);border-right:1px solid var(--border);padding:22px 16px;z-index:50;display:flex;flex-direction:column;transition:width .2s ease,transform .2s ease,padding .2s ease}
.brand{display:flex;align-items:center;gap:12px;padding:7px 8px 24px;color:var(--text)}
.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 78%,#fff));color:white;font-size:20px;font-weight:700;box-shadow:0 10px 24px color-mix(in srgb,var(--primary) 26%,transparent)}
.brand strong{display:block;font-size:17px;line-height:1.2}.brand small{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.app-nav{display:grid;gap:6px}
.app-nav a,.sidebar-footer a,.nav-button{display:flex;align-items:center;gap:12px;min-height:46px;padding:0 13px;border-radius:12px;color:var(--muted);border:0;background:transparent;text-align:left;width:100%}
.app-nav a i,.sidebar-footer i,.nav-button i{font-size:20px}
.app-nav a:hover,.sidebar-footer a:hover,.nav-button:hover{background:var(--surface-2);color:var(--text)}
.app-nav a.is-active{background:var(--primary-soft);color:var(--primary-text);font-weight:600}
.sidebar-footer{margin-top:auto;padding-top:18px;border-top:1px solid var(--border);display:grid;gap:6px}
.app-main{margin-left:var(--sidebar);padding:0 32px 48px;min-width:0;transition:margin-left .2s ease}
.topbar{min-height:96px;display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--border);margin-bottom:28px}
.topbar-copy{min-width:0;flex:0 0 auto}.topbar h1{font-size:26px;line-height:1.2;letter-spacing:-.03em}.topbar p{color:var(--muted);margin-top:5px}
.topbar-center{flex:1;min-width:0;display:flex;justify-content:center}
.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:0 0 auto}
.mobile-menu{display:grid}
.icon-button{width:42px;height:42px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);display:grid;place-items:center;font-size:21px}

.sidebar-backdrop{display:none;position:fixed;inset:0;border:0;background:rgba(17,24,39,.42);z-index:45}
body.sidebar-collapsed{--sidebar:84px}
body.sidebar-collapsed .app-sidebar{padding-left:12px;padding-right:12px}
body.sidebar-collapsed .brand{justify-content:center;padding-left:0;padding-right:0}
body.sidebar-collapsed .brand>span:last-child,
body.sidebar-collapsed .app-nav a span,
body.sidebar-collapsed .sidebar-footer span{display:none}
body.sidebar-collapsed .app-nav a,
body.sidebar-collapsed .sidebar-footer a,
body.sidebar-collapsed .nav-button{justify-content:center;padding-left:0;padding-right:0}
body.sidebar-collapsed .brand-mark{width:44px;height:44px}

.page{max-width:1500px;margin:0 auto}
.page-narrow{max-width:980px;margin:0 auto}
.hero-panel{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:20px;margin-bottom:24px}
.hero-card,.panel,.stat-card,.plan-card,.pricing-card,.auth-card,.board-column{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm)}
.hero-card{padding:30px;border-radius:var(--radius);display:flex;align-items:center;justify-content:space-between;gap:24px;overflow:hidden;position:relative}
.hero-card:after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;right:-90px;top:-100px;background:radial-gradient(circle,color-mix(in srgb,var(--primary) 18%,transparent),transparent 68%)}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:700;color:var(--primary-text)}
.hero-card h2{font-size:30px;letter-spacing:-.035em;margin:7px 0 10px;max-width:700px}.hero-card p{color:var(--muted);max-width:620px}
.hero-side{padding:24px;border-radius:var(--radius);background:linear-gradient(145deg,var(--primary),color-mix(in srgb,var(--primary) 82%,#fff));color:#fff;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 18px 45px color-mix(in srgb,var(--primary) 26%,transparent)}
.hero-side small{opacity:.8}.hero-side strong{font-size:30px;display:block;margin:3px 0}.hero-side a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 16px;border-radius:11px;border:1px solid transparent;font-weight:600}
.button-primary{background:var(--primary);color:#fff}.button-primary:hover{background:var(--primary-strong)}
.button-secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.button-secondary:hover{background:var(--surface-2)}
.button-danger{background:#fff0f2;color:#b52b46;border-color:#ffd7de}.dark .button-danger{background:#46262c;border-color:#65343e;color:#ff9aa9}
.button-ghost{background:transparent;color:var(--muted)}.button-small{min-height:34px;padding:0 11px;font-size:12px}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:28px}
.stat-card{border-radius:16px;padding:20px;display:flex;align-items:center;gap:15px}
.stat-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-text);font-size:21px}
.stat-card strong{display:block;font-size:24px;line-height:1.05}.stat-card span{color:var(--muted);font-size:12px}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:28px 0 14px}.section-heading h2{font-size:19px}.section-heading p{color:var(--muted);font-size:13px;margin-top:3px}
.plans-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.plan-card{border-radius:16px;padding:20px;display:flex;flex-direction:column;min-height:220px;transition:transform .18s ease,box-shadow .18s ease}.plan-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.plan-card-top{display:flex;justify-content:space-between;gap:12px}.plan-icon{width:38px;height:38px;border-radius:11px;background:var(--primary-soft);color:var(--primary-text);display:grid;place-items:center;font-size:19px}
.plan-card h3{font-size:17px;margin:14px 0 6px}.plan-card p{color:var(--muted);font-size:13px;min-height:40px}
.plan-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:11px;margin:15px 0}
.progress{height:7px;background:var(--surface-2);border-radius:20px;overflow:hidden;margin-bottom:14px}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),color-mix(in srgb,var(--primary) 70%,#fff));border-radius:inherit}
.plan-card-actions{margin-top:auto;display:flex;gap:8px}.plan-card-actions .button-primary{flex:1}
.empty-state{padding:44px 28px;border:1px dashed var(--border);border-radius:var(--radius);text-align:center;background:rgba(255,255,255,.28)}.empty-state i{font-size:42px;color:var(--primary-text)}.empty-state h3{margin:10px 0 6px}.empty-state p{color:var(--muted);margin-bottom:18px}
.panel{border-radius:var(--radius);padding:24px}.panel+.panel{margin-top:18px}
.panel-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.panel-header h2,.panel-header h3{font-size:18px}.panel-header p{color:var(--muted);font-size:12px;margin-top:3px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-field{display:grid;gap:7px}.form-field.full{grid-column:1/-1}
label{font-size:12px;font-weight:600;color:var(--muted)}
input:not([type="checkbox"]):not([type="radio"]),textarea,select{width:100%;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:11px;min-height:44px;padding:10px 12px;outline:none}
textarea{min-height:100px;resize:vertical}input:focus,textarea:focus,select:focus{border-color:var(--primary-text);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent)}
.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.form-error,.form-success,.notice{padding:12px 14px;border-radius:11px;margin:12px 0;font-size:13px}.form-error{background:#fff0f2;color:#b52b46}.form-success{background:#eaf8f3;color:#11795a}.notice{background:var(--primary-soft);color:var(--text)}
.modal{position:fixed;inset:0;background:rgba(20,24,32,.52);z-index:100;display:grid;place-items:center;padding:20px;backdrop-filter:blur(4px)}
.modal-card{width:min(620px,100%);max-height:90vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:0 30px 90px rgba(0,0,0,.25);padding:24px}
.modal-header{display:flex;justify-content:space-between;align-items:start;gap:16px;margin-bottom:20px}.modal-header h2{font-size:20px}.modal-header p{color:var(--muted);font-size:12px;margin-top:4px}
.board-page{max-width:none}.board-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}.board-toolbar .spacer{flex:1}
.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,340px);gap:16px;overflow-x:auto;padding:2px 2px 18px;min-height:calc(100vh - 210px);scroll-snap-type:x proximity}
.board-column{border-radius:16px;padding:14px;display:flex;flex-direction:column;max-height:calc(100vh - 205px);scroll-snap-align:start}
.column-heading{display:flex;align-items:center;gap:9px;padding:3px 3px 12px;position:relative}.column-heading h3{font-size:14px;flex:1}.column-menu-button{width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:var(--muted);display:grid;place-items:center}.column-menu-button:hover{background:var(--surface-2);color:var(--text)}.column-menu{display:grid;gap:3px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:6px;margin:-6px 0 10px;box-shadow:var(--shadow-sm)}.column-menu button{border:0;background:transparent;color:var(--text);display:flex;align-items:center;gap:8px;padding:8px 9px;border-radius:8px;text-align:left}.column-menu button:hover{background:var(--surface-2)}.member-remove{width:28px;height:28px;font-size:16px}.count-pill{min-width:25px;height:25px;padding:0 7px;border-radius:20px;background:var(--surface-2);display:grid;place-items:center;color:var(--muted);font-size:11px}
.task-list{display:grid;gap:10px;min-height:80px;overflow-y:auto;padding:2px 2px 10px}.task-list.is-drop-target{background:var(--primary-soft);border-radius:12px}
.task-card{background:var(--surface-2);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:13px;padding:13px;cursor:grab}.task-card.is-dragging{opacity:.45}.task-card button{border:0;background:transparent;color:inherit;text-align:left;width:100%}
.task-card.priority-accent-alta{border-left-color:var(--danger)}.task-card.priority-accent-media{border-left-color:var(--warning)}.task-card.priority-accent-baja{border-left-color:var(--success)}
.task-card h4{font-size:13px;line-height:1.45;margin-bottom:8px}.task-card p{font-size:11px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.task-footer{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:11px;color:var(--muted);font-size:11px}.due-chip{display:inline-flex;align-items:center;gap:4px;color:var(--muted)}
.priority{padding:3px 8px;border-radius:20px;background:var(--surface);border:1px solid var(--border);font-weight:600;letter-spacing:.01em}.priority-alta{color:#c33d55}.priority-media{color:#a15e00}.priority-baja{color:#1c7a5e}
.column-add{margin:0 0 10px;border:1px dashed var(--border);border-radius:11px;min-height:38px;background:transparent;color:var(--muted)}.column-add:hover{border-color:var(--primary-text);color:var(--primary-text)}
.completed-drawer{margin-top:10px;border-top:1px solid var(--border);padding-top:10px}
.completed-drawer summary{display:flex;align-items:center;gap:7px;list-style:none;cursor:pointer;color:var(--muted);font-size:12px;font-weight:600;padding:4px 2px;border-radius:8px}
.completed-drawer summary::-webkit-details-marker{display:none}
.completed-drawer summary:hover{color:var(--text)}
.completed-drawer summary i{transition:transform .15s ease;font-size:15px}
.completed-drawer[open] summary i{transform:rotate(90deg)}
.completed-drawer summary .count-pill{margin-left:auto}
.completed-drawer-list{margin-top:8px;opacity:.85}
.status-badge{font-size:11px;font-weight:700;padding:4px 9px;border-radius:20px;background:var(--surface-2);color:var(--muted);letter-spacing:.01em}.status-completada,.status-completado{background:#d3f3e7;color:#0b5e45}.status-en_progreso,.status-en-progreso,.status-en_proceso,.status-en-proceso{background:#ffe9bf;color:#7a4a00}.status-pendiente{background:#e4defc;color:#4c3aa8}
body.dark .priority-alta{color:#ff8fa3}
body.dark .priority-media{color:#ffb454}
body.dark .priority-baja{color:#4ade9b}
body.dark .status-completada,body.dark .status-completado{background:#123d30;color:#5eead4}
body.dark .status-en_progreso,body.dark .status-en-progreso,body.dark .status-en_proceso,body.dark .status-en-proceso{background:#4a3300;color:#ffcc80}
body.dark .status-pendiente{background:#3a2f6b;color:#c9bbff}
.task-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.detail-tile{padding:12px;border-radius:11px;background:var(--surface-2)}.detail-tile small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.detail-tile strong{font-size:12px;text-transform:capitalize}
.settings-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:20px}.settings-menu{position:sticky;top:20px;height:max-content;display:grid;gap:5px}.settings-menu .eyebrow{margin:2px 10px 8px}.settings-tab{width:100%;border:0;background:transparent;color:var(--muted);display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:10px;text-align:left}.settings-tab i{font-size:18px}.settings-tab:hover{background:var(--surface-2);color:var(--text)}.settings-tab.is-active{background:var(--primary-soft);color:var(--primary-text);font-weight:600}.settings-panel[hidden]{display:none!important}
.subscription-card{display:flex;align-items:center;gap:16px;padding:18px;border-radius:14px;background:var(--surface-2)}.subscription-card .subscription-icon{width:46px;height:46px;border-radius:13px;background:var(--primary-soft);color:var(--primary-text);display:grid;place-items:center;font-size:22px}.subscription-card .grow{flex:1}
.pricing-header{text-align:center;padding:24px 0 12px}.pricing-header h1{font-size:36px;letter-spacing:-.04em}.pricing-header p{color:var(--muted);max-width:620px;margin:8px auto}
.pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:26px 0}.pricing-card{border-radius:20px;padding:25px;display:flex;flex-direction:column}.pricing-card.featured{border:2px solid var(--primary);transform:translateY(-5px);box-shadow:0 24px 55px color-mix(in srgb,var(--primary) 16%,transparent)}.pricing-label{font-size:12px;font-weight:700;color:var(--primary-text);text-transform:uppercase;letter-spacing:.08em}.price{font-size:38px;font-weight:700;letter-spacing:-.05em;margin:12px 0}.price span{font-size:12px;font-weight:400;color:var(--muted);letter-spacing:0}.feature-list{list-style:none;display:grid;gap:10px;margin:15px 0 24px}.feature-list li{display:flex;gap:9px;color:var(--muted);font-size:13px}.feature-list i{color:var(--success);font-size:17px}.pricing-card form{margin-top:auto}
.auth-body{display:grid;place-items:center;padding:30px;background:radial-gradient(circle at 12% 10%,color-mix(in srgb,var(--primary) 14%,transparent),transparent 30%),var(--bg)}
.auth-shell{width:min(1040px,100%);display:grid;grid-template-columns:1fr 440px;background:var(--surface);border:1px solid var(--border);border-radius:26px;overflow:hidden;box-shadow:var(--shadow)}
.auth-visual{padding:48px;background:linear-gradient(150deg,#5a49e8,#7568fa);color:#fff;display:flex;flex-direction:column;justify-content:space-between;min-height:620px}.auth-visual .brand{color:#fff;padding:0}.auth-visual .brand-mark{background:#fff;color:var(--primary-text)}.auth-visual h1{font-size:38px;letter-spacing:-.045em;max-width:450px}.auth-visual p{opacity:.82;max-width:420px}.auth-points{display:grid;gap:12px}.auth-points span{display:flex;gap:10px;align-items:center}.auth-form{padding:48px}.auth-form h2{font-size:26px;margin-bottom:6px}.auth-form>p{color:var(--muted);margin-bottom:26px}.auth-form form{display:grid;gap:15px}.auth-form .button{width:100%;margin-top:4px}.auth-links{display:flex;justify-content:space-between;gap:10px;margin-top:20px;font-size:12px}
.toast-region{position:fixed;right:20px;bottom:20px;z-index:200;display:grid;gap:8px}.toast{background:var(--text);color:var(--surface);padding:11px 14px;border-radius:10px;box-shadow:var(--shadow);font-size:12px}.toast-success{background:#146f56;color:#fff}.toast-error{background:#9c2b40;color:#fff}
@media(max-width:1050px){.stats-grid{grid-template-columns:repeat(2,1fr)}.hero-panel{grid-template-columns:1fr}.settings-layout{grid-template-columns:1fr}.settings-menu{position:static}.pricing-grid{grid-template-columns:1fr}.pricing-card.featured{transform:none}.auth-shell{grid-template-columns:1fr}.auth-visual{display:none}}
@media(max-width:760px){body{--sidebar:0px}body.sidebar-collapsed{--sidebar:0px}.app-sidebar{transform:translateX(-100%);width:260px;padding:22px 16px;box-shadow:var(--shadow)}.app-sidebar.is-open{transform:translateX(0)}body.sidebar-collapsed .app-sidebar .brand>span:last-child,body.sidebar-collapsed .app-sidebar .app-nav a span,body.sidebar-collapsed .app-sidebar .sidebar-footer span{display:block}body.sidebar-collapsed .app-sidebar .app-nav a,body.sidebar-collapsed .app-sidebar .sidebar-footer a,body.sidebar-collapsed .app-sidebar .nav-button{justify-content:flex-start;padding:0 13px}.sidebar-backdrop{display:block;opacity:0;pointer-events:none;transition:opacity .2s ease}body.sidebar-open .sidebar-backdrop{opacity:1;pointer-events:auto}.app-main{margin-left:0;padding:0 16px 32px}.topbar{min-height:82px;margin-bottom:20px}.mobile-menu{display:grid}.topbar h1{font-size:21px}.topbar p{display:none}.topbar-actions .button span{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hero-card{padding:22px}.hero-card h2{font-size:25px}.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:15px}.stat-card strong{font-size:20px}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.kanban{grid-auto-columns:minmax(280px,86vw);min-height:calc(100vh - 180px)}.board-column{max-height:calc(100vh - 180px)}.task-detail-grid{grid-template-columns:1fr}.auth-body{padding:14px}.auth-form{padding:28px 22px}.pricing-header h1{font-size:30px}}
@media(max-width:460px){.stats-grid{grid-template-columns:1fr}.hero-card{display:block}.hero-card .button{margin-top:18px}.plan-card-actions{flex-direction:column}.topbar-actions{gap:5px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Planner workspace */
.planner-page{max-width:none}
.status-danger{background:#fff0f2;color:var(--danger)}
.planner-filterbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.planner-filterbar select,.planner-filterbar>input{width:auto;min-width:155px;min-height:38px;padding:7px 10px}
.planner-search{position:relative;min-width:240px;flex:1;max-width:360px}.planner-search i{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted)}.planner-search input{padding-left:34px;min-height:38px}
.planner-zero-state{min-height:420px;display:grid;place-items:center;align-content:center;text-align:center;border:1px dashed var(--border);border-radius:18px;background:rgba(255,255,255,.08);padding:30px}.planner-zero-state .zero-icon{width:62px;height:62px;border-radius:18px;background:var(--primary-soft);color:var(--primary-text);display:grid;place-items:center;font-size:30px;margin-bottom:14px}.planner-zero-state p{color:var(--muted);max-width:520px;margin:8px auto 18px}
.planner-board{grid-auto-columns:minmax(285px,330px);gap:22px}
.planner-board .board-column{background:transparent;border:0;box-shadow:none;padding:0;border-radius:0}
.planner-board .column-heading{padding:3px 4px 10px}.planner-board .column-heading h3{font-size:14px}
.planner-board .task-list{overflow:visible;align-content:start}
.planner-board .task-card{background:var(--surface);box-shadow:0 2px 8px rgba(20,24,32,.08);border-top-color:var(--border);border-right-color:var(--border);border-bottom-color:var(--border);transition:box-shadow .15s ease,transform .15s ease}.planner-board .task-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}
.dark .planner-board .task-card{background:#2a2b2d}
.planner-board .column-add{border:0;text-align:left;padding:0 8px;justify-content:flex-start;background:transparent}
.task-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.task-tags span{font-size:10px;font-weight:600;padding:3px 7px;border-radius:5px;background:var(--surface);border:1px solid var(--border);color:var(--text)}
body.dark .task-tags span{background:var(--surface-2)}
.planner-grid-card{border:1px solid var(--border);border-radius:16px;background:var(--surface);overflow:hidden}
.planner-table-wrap{overflow:auto}.planner-table{width:100%;border-collapse:collapse;min-width:900px}.planner-table th{padding:12px 15px;text-align:left;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em;background:var(--surface-2);border-bottom:1px solid var(--border)}.planner-table td{padding:13px 15px;border-bottom:1px solid var(--border);font-size:12px}.planner-table tbody tr:hover{background:var(--surface-2)}.task-link{border:0;background:transparent;color:var(--text);font-weight:600;text-align:left}
.planner-calendar{border:1px solid var(--border);border-radius:16px;background:var(--surface);overflow:hidden}.calendar-toolbar{display:flex;align-items:center;justify-content:center;gap:18px;padding:18px;border-bottom:1px solid var(--border)}.calendar-toolbar div{text-align:center}.calendar-toolbar h2{font-size:18px}.calendar-toolbar p{font-size:11px;color:var(--muted)}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays span{padding:9px 10px;text-align:center;color:var(--muted);font-size:10px;font-weight:600;background:var(--surface-2);border-bottom:1px solid var(--border)}.calendar-day{min-height:125px;padding:8px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.calendar-day:nth-child(7n){border-right:0}.calendar-day.is-outside{background:var(--surface-2)}.calendar-day.is-outside .calendar-date{color:var(--muted)}.calendar-date{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font-size:11px;margin-bottom:5px}.calendar-day.is-today .calendar-date{background:var(--primary);color:#fff;font-weight:700}.calendar-events{display:grid;gap:4px}.calendar-task{border:0;border-left:3px solid var(--primary);background:var(--surface-2);color:var(--text);border-radius:5px;padding:5px 6px;text-align:left;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-task.priority-alta{border-left-color:#d6455d}.calendar-task.priority-media{border-left-color:#c97a13}.calendar-task.priority-baja{border-left-color:#15936c}
.planner-report-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.report-row+.report-row{margin-top:15px}.report-row>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:12px;margin-bottom:5px}.report-row span{color:var(--muted)}.report-task-list{display:grid;gap:6px}.report-task-list button{border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:10px 12px;border-radius:9px;display:flex;justify-content:space-between;gap:10px;text-align:left}.report-task-list small{color:var(--muted)}.muted-copy{color:var(--muted);font-size:12px}
.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.chart-panel.wide{grid-column:1/-1}.donut-wrap{display:flex;align-items:center;gap:30px;flex-wrap:wrap}.donut{width:180px;height:180px;border-radius:50%;background:conic-gradient(var(--primary) 0 var(--p1),#d99735 var(--p1) var(--p2),var(--success) var(--p2) 100%);display:grid;place-items:center}.donut:before{content:"";position:absolute}.donut>div{width:112px;height:112px;border-radius:50%;background:var(--surface);display:grid;place-items:center;align-content:center;text-align:center}.donut strong{font-size:26px}.donut span{font-size:10px;color:var(--muted)}.chart-legend{display:grid;gap:10px;font-size:12px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px}.dot-primary{background:var(--primary)}.dot-warning{background:#d99735}.dot-success{background:var(--success)}.bar-chart{display:grid;gap:14px}.bar-row{display:grid;grid-template-columns:minmax(100px,180px) minmax(120px,1fr) 36px;gap:12px;align-items:center;font-size:11px}.bar-row>div{height:10px;border-radius:20px;background:var(--surface-2);overflow:hidden}.bar-row i{display:block;height:100%;background:linear-gradient(90deg,var(--primary),#8c81ff);border-radius:inherit}.bar-row strong{text-align:right}.planner-settings-actions{justify-content:space-between;flex-wrap:wrap}.planner-settings-actions>div{display:flex;gap:8px;flex-wrap:wrap}.task-detail-section{margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.stack-list{display:grid;gap:8px}.inline-create{display:flex;gap:8px;margin-top:10px}

@media(max-width:900px){.planner-report-grid,.charts-grid{grid-template-columns:1fr}.chart-panel.wide{grid-column:auto}.calendar-day{min-height:100px}}
@media(max-width:700px){.calendar-weekdays span{font-size:9px;padding:7px 2px}.calendar-day{min-height:86px;padding:4px}.calendar-task{font-size:0;padding:4px;height:12px}.calendar-task:after{content:"";display:block}.planner-filterbar>*{flex:1 1 140px}.planner-search{max-width:none}.planner-board{grid-auto-columns:minmax(280px,86vw)}}


/* Planner workspace v2 */
.planner-workspace .topbar{margin-bottom:18px}
.planner-chrome{position:sticky;top:0;z-index:25;background:linear-gradient(var(--bg) 78%,transparent);padding:0 0 14px;margin-bottom:8px}
.planner-chrome-top{display:flex;align-items:center;gap:14px;justify-content:flex-end}
.view-switcher{position:relative}
.view-switcher-trigger{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 12px;border:1px solid var(--border);border-radius:9px;color:var(--primary-text);background:var(--primary-soft);font-weight:600;font-size:12px;cursor:pointer}
.view-switcher-trigger:hover{background:var(--surface-2);color:var(--text)}
.view-switcher-caret{font-size:14px;margin-left:2px;transition:transform .15s ease}
.view-switcher.is-open .view-switcher-caret{transform:rotate(180deg)}
.view-switcher-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:196px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:6px;box-shadow:var(--shadow);display:grid;gap:2px;z-index:60}
.view-switcher-menu a{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;color:var(--muted);font-size:12px;font-weight:500}
.view-switcher-menu a:hover{background:var(--surface-2);color:var(--text)}
.view-switcher-menu a.is-active{color:var(--primary-text);background:var(--primary-soft);font-weight:600}
.planner-filterbar-compact{display:flex;align-items:center;gap:8px;margin:8px 0 0;position:relative}
.planner-filterbar-compact .planner-search{max-width:420px;min-width:260px}
.planner-filterbar-compact>select{min-width:120px;width:auto}
.planner-filterbar-topbar{margin:0;width:100%;max-width:480px;justify-content:center}
.planner-filterbar-topbar .planner-search{min-width:220px;max-width:420px}
.board-column-add{background:transparent;border:1.5px dashed var(--border);box-shadow:none;padding:0}
.add-column-trigger{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:56px;padding:14px;background:none;border:0;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;border-radius:14px;transition:background .15s ease,color .15s ease}
.add-column-trigger:hover{background:var(--surface);color:var(--text)}
.add-column-trigger i{font-size:16px}
.planner-filter-menu{position:relative}
.planner-filter-menu>summary{list-style:none;display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);cursor:pointer;font-size:12px;font-weight:600}
.planner-filter-menu>summary::-webkit-details-marker{display:none}
.planner-filter-popover{position:absolute;top:44px;right:0;width:310px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px;box-shadow:var(--shadow);display:grid;gap:11px;z-index:50}
.planner-filter-popover label{display:grid;gap:5px}
.planner-filter-popover select,.planner-filter-popover input{width:100%;min-width:0}
.filter-actions{display:flex;justify-content:flex-end;gap:8px}
.planner-board{gap:28px;padding-top:8px;align-items:start}
.planner-board .board-column{min-height:220px}
.planner-board .board-column-add{min-height:0;align-self:start}

/* Board view: fixed app-shell so the kanban fills exactly the space left
   after the header (flex-computed, not a guessed vh number) — the page
   itself never scrolls, only the board's own horizontal scrollbar (always
   flush at the bottom) and, per column, an internal vertical scrollbar
   when a column has more tasks than fit. */
body.board-view-fixed{height:100vh;overflow:hidden}
body.board-view-fixed .app-main{height:100vh;overflow-y:auto;display:flex;flex-direction:column}
body.board-view-fixed .topbar{flex-shrink:0}
body.board-view-fixed .planner-page{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;margin:0;width:100%}
body.board-view-fixed .kanban{flex:1;min-height:0;min-width:0}
body.board-view-fixed .planner-board .board-column{max-height:100%;overflow:hidden}
body.board-view-fixed .planner-board .task-list{overflow-y:auto}
.planner-board .column-heading{min-height:36px}
.planner-board .task-list{min-height:60px}
.planner-board .task-card{border-radius:11px}
.planner-board .column-add{min-height:34px;padding-left:7px}
.timeline-shell,.people-workload,.goal-card,.sprint-card,.person-card{background:var(--surface);border:1px solid var(--border);border-radius:16px}
.timeline-shell{overflow:hidden}
.timeline-head{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:18px 20px;border-bottom:1px solid var(--border)}
.timeline-head h2{font-size:18px}.timeline-head p,.timeline-head>span{color:var(--muted);font-size:11px}
.gantt{overflow:auto}
.gantt-row{display:grid;grid-template-columns:240px minmax(700px,1fr);border-bottom:1px solid var(--border);min-height:54px}
.gantt-label{border:0;background:var(--surface);color:var(--text);text-align:left;padding:10px 14px;font-weight:600;border-right:1px solid var(--border)}
.gantt-label small{display:block;color:var(--muted);font-weight:400;margin-top:2px}
.gantt-track{position:relative;background-image:linear-gradient(to right,var(--border) 1px,transparent 1px);background-size:10% 100%}
.gantt-bar{position:absolute;top:10px;bottom:10px;border:0;border-radius:8px;background:var(--primary);color:#fff;min-width:18px;overflow:hidden;text-align:left;padding:0 8px;font-size:9px}
.gantt-bar.priority-alta{background:#c74359}.gantt-bar.priority-media{background:#b8791e}.gantt-bar.priority-baja{background:#26856b}
.people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-bottom:18px}
.person-card{padding:18px;display:grid;grid-template-columns:48px 1fr auto;gap:10px 12px;align-items:center}
.person-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-text);font-size:18px;font-weight:700}
.person-copy h3{font-size:14px}.person-copy p{font-size:10px;color:var(--muted)}
.person-card>strong{font-size:24px}.person-card>span{grid-column:2/-1;color:var(--muted);font-size:10px}
.person-progress{grid-column:1/-1;height:6px;background:var(--surface-2);border-radius:10px;overflow:hidden}.person-progress i{display:block;height:100%;background:var(--primary)}
.people-workload{padding:22px}.workload-row{display:grid;grid-template-columns:180px 1fr 34px;gap:12px;align-items:center;margin:12px 0;font-size:11px}.workload-row>div{height:9px;background:var(--surface-2);border-radius:12px;overflow:hidden}.workload-row i{display:block;height:100%;background:linear-gradient(90deg,var(--primary),#8c81ff)}
.goals-layout,.sprints-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px}
.goals-list,.sprint-list{display:grid;gap:14px;align-content:start}
.goal-card,.sprint-card{padding:18px}.goal-head,.sprint-card>header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.goal-head h3,.sprint-card h3{font-size:16px;margin-top:7px}.goal-head>strong,.sprint-card>header>strong{font-size:26px;color:var(--primary-text)}
.goal-card>p,.sprint-card>p{color:var(--muted);font-size:12px;margin:10px 0}.goal-card footer,.sprint-card footer{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:10px}
.goal-actions{display:flex;justify-content:space-between;gap:8px;margin-top:12px}.goal-actions form:first-child{flex:1}.goal-actions select{min-height:36px}
.create-side{height:max-content;position:sticky;top:110px}.create-side form{display:grid;gap:12px}.create-side .button{margin-top:5px}
.task-advanced-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.task-advanced-grid .full{grid-column:1/-1}
.check-list{display:grid;gap:6px;border:1px solid var(--border);background:var(--surface-2);border-radius:11px;padding:9px;max-height:150px;overflow:auto}.check-list label{display:flex;align-items:center;gap:8px;color:var(--text);font-weight:500}
.history-list{display:grid;gap:7px}.history-item{display:flex;justify-content:space-between;gap:12px;padding:9px 11px;border-radius:9px;background:var(--surface-2);font-size:10px}.history-item strong{font-size:10px}.history-item span{color:var(--muted);text-align:right}
.plan-settings-subsection{border-top:1px solid var(--border);padding-top:16px;margin-top:16px}.custom-field-list{display:flex;gap:6px;flex-wrap:wrap}.custom-field-list>div{padding:5px 8px;border-radius:8px;background:var(--surface-2);font-size:10px}.custom-field-create{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}
@media(max-width:1050px){.goals-layout,.sprints-layout{grid-template-columns:1fr}.create-side{position:static}.task-advanced-grid{grid-template-columns:1fr}.task-advanced-grid .full{grid-column:auto}}
@media(max-width:760px){.planner-filterbar-compact{align-items:stretch;flex-wrap:wrap}.planner-filterbar-compact .planner-search{min-width:100%;max-width:none}.planner-filter-menu{flex:1}.planner-filter-menu>summary{width:100%;justify-content:center}.planner-filter-popover{left:0;right:auto;width:min(310px,88vw)}.gantt-row{grid-template-columns:150px minmax(620px,1fr)}.workload-row{grid-template-columns:110px 1fr 28px}.topbar{flex-wrap:wrap}.topbar-center{order:3;flex:1 1 100%;margin-top:10px}.planner-filterbar-topbar{max-width:none}}

.assignee-stack{display:inline-flex;align-items:center}.assignee-stack i{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-text);border:2px solid var(--surface);font-size:8px;font-style:normal;font-weight:700;margin-left:-5px}.assignee-stack i:first-child{margin-left:0}
.custom-field-manager{display:grid;gap:6px;margin-top:10px}.custom-field-manager form{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 9px;border-radius:9px;background:var(--surface-2);font-size:10px}.custom-field-manager .icon-button{width:28px;height:28px;font-size:15px}


/* Personal productivity: My Tasks / My Day */
.personal-page{max-width:1320px}
.personal-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.personal-summary article{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px;display:grid;grid-template-columns:36px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center}
.personal-summary article>i{grid-row:1/3;width:36px;height:36px;border-radius:10px;background:var(--primary-soft);color:var(--primary-text);display:grid;place-items:center;font-size:18px}
.personal-summary strong{font-size:20px;line-height:1}.personal-summary span{font-size:10px;color:var(--muted)}
.personal-filters{display:flex;gap:6px;overflow:auto;padding-bottom:4px;margin-bottom:14px;scrollbar-width:none}
.personal-filters::-webkit-scrollbar{display:none}
.personal-filters a{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:8px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--muted);font-size:11px;font-weight:600}
.personal-filters a span{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--surface-2);display:grid;place-items:center;font-size:9px}
.personal-filters a.is-active{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 34%,transparent);color:var(--primary-text)}
.personal-task-list{display:grid;gap:8px}
.personal-task-card{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:start;background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:13px 14px}
.personal-task-card:hover{border-color:color-mix(in srgb,var(--primary) 28%,transparent);box-shadow:var(--shadow-sm)}
.personal-task-card.is-complete{background:var(--surface-2)}
.personal-task-check{font-size:22px;color:var(--primary-text);padding-top:1px}
.personal-task-title{display:inline-block;color:var(--text);font-size:13px;font-weight:600;margin-bottom:3px}
.personal-task-card.is-complete .personal-task-title{text-decoration:line-through}
.personal-task-context,.personal-task-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;color:var(--muted);font-size:9px}
.personal-task-context{margin-bottom:5px}.personal-task-main>p{font-size:10px;color:var(--muted);margin:4px 0 8px}
.personal-task-meta .is-overdue{color:var(--danger);font-weight:600}
.personal-task-actions{display:flex;align-items:center;gap:6px}
.my-day-hero{border-radius:18px;padding:24px;background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 75%,#fff));color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px}
.my-day-hero .eyebrow{color:rgba(255,255,255,.74)}.my-day-hero h2{font-size:26px;margin:4px 0}.my-day-hero p{font-size:11px;color:rgba(255,255,255,.8);max-width:560px}
.my-day-progress{text-align:right;display:grid}.my-day-progress strong{font-size:34px;line-height:1}.my-day-progress span{font-size:11px;font-weight:600}.my-day-progress small{font-size:9px;color:rgba(255,255,255,.75)}
.my-day-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px}
.my-day-list{display:grid;gap:8px}.my-day-card{display:grid;grid-template-columns:30px minmax(0,1fr) 34px;gap:10px;align-items:start;background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:13px}
.my-day-card.is-complete{background:var(--surface-2)}.my-day-task-state{font-size:21px;color:var(--primary-text)}.my-day-card .grow>a{color:var(--text);font-weight:600;font-size:12px}.my-day-card.is-complete .grow>a{text-decoration:line-through}.my-day-card .grow>p{color:var(--muted);font-size:9px;margin:2px 0 7px}
.my-day-suggestions{height:max-content;position:sticky;top:18px}.my-day-suggestion{display:grid;grid-template-columns:minmax(0,1fr) 32px;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border)}
.my-day-suggestion strong{display:block;font-size:11px}.my-day-suggestion span{display:block;color:var(--muted);font-size:9px;margin-top:2px}.my-day-suggestions>.button{width:100%;margin-top:14px}
.empty-state.compact{min-height:260px}
@media(max-width:950px){.personal-summary{grid-template-columns:repeat(2,1fr)}.my-day-layout{grid-template-columns:1fr}.my-day-suggestions{position:static}}
@media(max-width:650px){.personal-summary{grid-template-columns:1fr 1fr}.personal-task-card{grid-template-columns:28px minmax(0,1fr)}.personal-task-actions{grid-column:2;justify-content:flex-start}.my-day-hero{align-items:flex-start}.my-day-progress{min-width:80px}}


/* Notification center */
.nav-count{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:9px;font-style:normal;font-weight:700}
.notification-bell{position:relative}.notification-bell>span{position:absolute;top:-6px;right:-7px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#d6455d;color:#fff;border:2px solid var(--bg);display:grid;place-items:center;font-size:8px;font-weight:700}
.notifications-page{max-width:1100px}.notification-list{display:grid;gap:8px}
.notification-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px 15px;background:var(--surface);border:1px solid var(--border);border-radius:13px}
.notification-card.is-unread{border-color:color-mix(in srgb,var(--primary) 34%,transparent);background:linear-gradient(90deg,var(--primary-soft),var(--surface) 16%)}
.notification-icon{width:42px;height:42px;border-radius:12px;background:var(--surface-2);color:var(--primary-text);display:grid;place-items:center;font-size:20px}
.notification-title-row{display:flex;align-items:center;gap:8px}.notification-title-row strong{font-size:12px}.notification-dot{width:7px;height:7px;border-radius:50%;background:var(--primary)}
.notification-copy p{color:var(--muted);font-size:10px;margin:4px 0 7px}.notification-meta{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:9px}.notification-meta span+span:before{content:"·";margin-right:8px}
.notification-actions{display:flex;align-items:center;gap:6px}
@media(max-width:650px){.notification-card{grid-template-columns:38px minmax(0,1fr)}.notification-actions{grid-column:2;justify-content:flex-start}.notification-icon{width:38px;height:38px}}


/* Task attachments */
.attachment-list{display:grid;gap:7px}.attachment-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}
.attachment-file-icon{width:38px;height:38px;border-radius:9px;background:var(--surface);display:grid;place-items:center;color:var(--primary-text);font-size:19px}
.attachment-copy{min-width:0}.attachment-copy a{display:block;color:var(--text);font-weight:600;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-copy span{display:block;color:var(--muted);font-size:8px;margin-top:2px}.attachment-actions{display:flex;gap:5px}
.attachment-upload{margin-top:10px;padding:12px;border:1px dashed var(--border);border-radius:11px;background:var(--surface-2);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center}.attachment-upload input[type=file]{min-height:38px;background:var(--surface)}.attachment-upload small{grid-column:1/-1;color:var(--muted);font-size:8px}
@media(max-width:650px){.attachment-upload{grid-template-columns:1fr}.attachment-upload small{grid-column:auto}.attachment-item{grid-template-columns:34px minmax(0,1fr)}.attachment-actions{grid-column:2}}


/* Time tracking */
.time-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.time-summary-grid>div{padding:11px;border-radius:10px;background:var(--surface-2);display:grid;gap:3px}.time-summary-grid span{font-size:9px;color:var(--muted)}.time-summary-grid strong{font-size:14px}.time-summary-grid strong.is-over{color:var(--danger)}
.time-controls{display:grid;grid-template-columns:180px minmax(0,1fr);gap:12px;align-items:end}.time-timer{display:flex;align-items:center;gap:8px;padding-bottom:1px}.time-live-counter{font-variant-numeric:tabular-nums;font-size:13px;font-weight:700;color:var(--primary-text);padding:0 8px}
.manual-time-entry{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:9px;align-items:end;margin-top:10px}.manual-time-entry .button{margin-bottom:1px}
.time-entry-list{display:grid;gap:7px;margin-top:12px}.time-entry-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 10px;border-radius:10px;background:var(--surface-2);border:1px solid var(--border)}.time-entry-item strong{display:block;font-size:11px}.time-entry-item span{display:block;color:var(--muted);font-size:8px;margin-top:2px}.time-entry-item p{font-size:9px;margin-top:4px;color:var(--muted)}
@media(max-width:700px){.time-summary-grid{grid-template-columns:1fr}.time-controls,.manual-time-entry{grid-template-columns:1fr}.time-timer{padding-bottom:0}}


/* Budget and costs */
.budget-settings-grid{grid-template-columns:2fr 1fr}.cost-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.budget-report-panel{margin-bottom:18px}.budget-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.budget-metrics>div{padding:12px;border-radius:10px;background:var(--surface-2);display:grid;gap:4px}.budget-metrics span{font-size:9px;color:var(--muted)}.budget-metrics strong{font-size:14px}.budget-metrics strong.is-over{color:var(--danger)}
.budget-progress{height:10px;border-radius:10px;background:var(--surface-2);overflow:hidden;margin-top:14px}.budget-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),#8c81ff);border-radius:inherit}.budget-report-panel>small{display:block;color:var(--muted);font-size:9px;margin-top:6px}
.time-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.active-timer-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px;border-radius:16px;background:linear-gradient(135deg,var(--primary),#8c81ff);color:#fff;margin-bottom:18px}.active-timer-card .eyebrow,.active-timer-card p{color:rgba(255,255,255,.78)}.active-timer-card h2{font-size:18px;margin:4px 0}
@media(max-width:900px){.budget-metrics{grid-template-columns:1fr 1fr}.time-dashboard-grid{grid-template-columns:1fr}}
@media(max-width:650px){.cost-summary-grid,.budget-settings-grid{grid-template-columns:1fr}.budget-metrics{grid-template-columns:1fr}.active-timer-card{align-items:flex-start;flex-direction:column}}


/* Intake forms */
.forms-page,.form-builder-page{max-width:1250px}.forms-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px}.form-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.intake-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px;display:grid;grid-template-columns:1fr auto;gap:10px}.intake-card h3{font-size:14px;margin:7px 0 3px}.intake-card p{color:var(--muted);font-size:10px}.intake-card>strong{font-size:24px}.intake-card>span{grid-column:2;color:var(--muted);font-size:9px}.intake-actions{grid-column:1/-1;display:flex;gap:7px}.intake-actions .button{flex:1}
.public-link-box{margin-top:14px;padding:11px;border-radius:10px;background:var(--surface-2);display:grid;gap:5px}.public-link-box span{font-size:9px;color:var(--muted)}.public-link-box code{font-size:10px;overflow-wrap:anywhere}
.intake-field-list{display:grid;gap:7px}.intake-field-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;border-radius:9px;background:var(--surface-2)}.intake-field-list strong,.intake-field-list small{display:block}.intake-field-list strong{font-size:10px}.intake-field-list small{font-size:8px;color:var(--muted)}.field-create-form{display:grid;gap:9px;border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.check-row{display:flex!important;align-items:center;gap:8px;font-size:10px;color:var(--muted)}.check-row input{width:auto}
.public-form-body{min-height:100vh;background:linear-gradient(135deg,#eef0ff,#f8f8ff);padding:34px 16px}.public-form-shell{width:min(760px,100%);margin:auto}.public-form-brand{display:flex;align-items:center;gap:9px;margin-bottom:16px}.public-form-card{background:#fff;border-radius:18px;padding:28px;box-shadow:0 18px 60px rgba(31,35,48,.12)}.public-form-card header{margin-bottom:20px}.public-form-card h1{font-size:24px;margin:5px 0}.public-form-card header p{color:#747b8c;font-size:11px}.public-submit{width:100%;margin-top:16px}.honeypot{position:absolute!important;left:-10000px!important;opacity:0!important}.public-success{text-align:center;padding:50px 20px}.public-success i{font-size:54px;color:#2fa37d}.public-success h1{margin:10px 0}
@media(max-width:900px){.forms-layout{grid-template-columns:1fr}.forms-layout .create-side{position:static}}


/* Portfolio + project overview */
.portfolio-page{max-width:none}.portfolio-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:12px}.portfolio-summary-grid article{display:flex;align-items:center;gap:10px;padding:15px;background:var(--surface);border:1px solid var(--border);border-radius:13px}.portfolio-kpi-icon{width:36px;height:36px;border-radius:10px;background:var(--primary-soft);color:var(--primary-text);display:grid;place-items:center;font-size:17px;flex:0 0 auto}.portfolio-summary-grid strong{display:block;font-size:17px}.portfolio-summary-grid span:not(.portfolio-kpi-icon){display:block;font-size:9px;color:var(--muted)}
.portfolio-health-strip{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:10px 13px;background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:20px}.portfolio-health-strip>div{display:flex;align-items:center;gap:6px;font-size:10px}.portfolio-health-strip small{margin-left:auto;color:var(--muted);font-size:8px}.portfolio-health-dot{width:8px;height:8px;border-radius:50%}.portfolio-health-dot.healthy{background:#2fa37d}.portfolio-health-dot.attention{background:#d99735}.portfolio-health-dot.risk{background:#d6455d}
.portfolio-table-card{background:var(--surface);border:1px solid var(--border);border-radius:15px;overflow:hidden}.portfolio-table-wrap{overflow:auto}.portfolio-table{width:100%;border-collapse:collapse;min-width:1180px}.portfolio-table th{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:left;padding:11px 13px;background:var(--surface-2);border-bottom:1px solid var(--border)}.portfolio-table td{padding:12px 13px;border-bottom:1px solid var(--border);font-size:10px;vertical-align:middle}.portfolio-table tbody tr:hover{background:var(--surface-2)}.portfolio-project-name{display:block;color:var(--text);font-weight:700;font-size:11px}.portfolio-table td small{display:block;color:var(--muted);font-size:8px;margin-top:2px}.portfolio-progress-cell{min-width:130px}.portfolio-progress-cell strong{font-size:10px}.portfolio-progress-cell .progress{margin-top:5px}.danger-copy{color:var(--danger)!important}
.health-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:8px;font-size:9px;font-weight:700;white-space:nowrap}.health-badge i{width:7px;height:7px;border-radius:50%}.health-healthy{background:#e9f8f3;color:#18795d}.health-healthy i{background:#2fa37d}.health-attention{background:#fff5e5;color:#9a6412}.health-attention i{background:#d99735}.health-risk{background:#fff0f2;color:#a92e46}.health-risk i{background:#d6455d}.dark .health-healthy,.dark .health-attention,.dark .health-risk{background:var(--surface-2)}
.project-overview-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:17px;margin-bottom:12px}.overview-title-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.overview-title-line h2{font-size:22px}.project-overview-hero p{color:var(--muted);font-size:11px;margin-top:5px}.overview-progress-ring{--progress:0%;width:108px;height:108px;border-radius:50%;background:conic-gradient(var(--primary) var(--progress),var(--surface-2) 0);display:grid;place-items:center;flex:0 0 auto}.overview-progress-ring>div{width:78px;height:78px;border-radius:50%;background:var(--surface);display:grid;place-items:center;align-content:center;text-align:center}.overview-progress-ring strong{font-size:20px}.overview-progress-ring span{font-size:8px;color:var(--muted)}
.overview-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin-bottom:14px}.overview-kpi-grid article{display:flex;align-items:center;gap:9px;padding:13px;background:var(--surface);border:1px solid var(--border);border-radius:12px}.overview-kpi-grid>article>i{font-size:18px;color:var(--primary-text)}.overview-kpi-grid strong{display:block;font-size:15px}.overview-kpi-grid span{display:block;color:var(--muted);font-size:8px}
.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.overview-panel{min-width:0}.overview-panel .panel-header>a{font-size:9px;color:var(--primary-text);font-weight:600}.overview-list,.overview-goals,.overview-activity,.overview-workload{display:grid;gap:7px}.overview-list button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:9px;padding:9px 10px;text-align:left}.overview-list strong,.overview-goals strong{display:block;font-size:10px}.overview-list small,.overview-goals small{display:block;color:var(--muted);font-size:8px}.overview-list time{color:var(--muted);font-size:9px}
.overview-goals>div{display:grid;grid-template-columns:1fr auto;gap:5px 10px;padding:8px 0;border-bottom:1px solid var(--border)}.overview-goals .progress{grid-column:1/-1}.overview-goals em{font-style:normal;font-size:10px;font-weight:700;color:var(--primary-text)}
.overview-finance{display:grid;grid-template-columns:1fr 1fr;gap:8px}.overview-finance>div,.overview-time>div{padding:10px;background:var(--surface-2);border-radius:9px}.overview-finance span,.overview-time span{display:block;color:var(--muted);font-size:8px}.overview-finance strong,.overview-time strong{display:block;font-size:13px;margin-top:2px}.overview-time{display:grid;grid-template-columns:1fr 1fr;gap:8px}.overview-time-progress{margin-top:10px}
.overview-activity-panel{grid-row:span 2}.overview-activity>div{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid var(--border)}.activity-icon{width:30px;height:30px;border-radius:8px;background:var(--surface-2);color:var(--primary-text);display:grid;place-items:center}.overview-activity p strong,.overview-activity p span{display:block}.overview-activity p strong{font-size:9px}.overview-activity p span,.overview-activity time{font-size:8px;color:var(--muted)}
.overview-workload>div{display:grid;grid-template-columns:120px 1fr 28px;gap:9px;align-items:center;font-size:9px}.overview-workload>div>div{height:7px;background:var(--surface-2);border-radius:8px;overflow:hidden}.overview-workload i{display:block;height:100%;background:var(--primary)}
@media(max-width:1200px){.portfolio-summary-grid,.overview-kpi-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:850px){.overview-grid{grid-template-columns:1fr}.overview-activity-panel{grid-row:auto}.portfolio-summary-grid,.overview-kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.portfolio-summary-grid,.overview-kpi-grid{grid-template-columns:1fr}.project-overview-hero{align-items:flex-start}.overview-progress-ring{width:86px;height:86px}.overview-progress-ring>div{width:62px;height:62px}.overview-finance,.overview-time{grid-template-columns:1fr}}


/* Project automations */
.automations-page{max-width:1280px}.automation-project-switcher{margin-bottom:14px}.automation-project-switcher form{max-width:360px}.automation-project-switcher label{display:grid;gap:6px;font-size:9px;color:var(--muted)}
.automations-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px}.automation-rule-list{display:grid;gap:9px}.automation-rule-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:11px;align-items:start;padding:13px 14px;background:var(--surface);border:1px solid var(--border);border-radius:13px}.automation-rule-card.is-disabled{opacity:.58}.automation-rule-icon{width:42px;height:42px;border-radius:11px;background:var(--primary-soft);color:var(--primary-text);display:grid;place-items:center;font-size:20px}.automation-rule-copy>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.automation-rule-copy strong{font-size:12px}.automation-rule-copy p{font-size:9px;color:var(--muted);margin-top:3px}.automation-rule-copy b{color:var(--text)}.automation-rule-copy small{display:block;font-size:8px;color:var(--muted);margin-top:5px}.automation-rule-actions{display:flex;gap:5px}
.automation-builder{height:max-content;position:sticky;top:18px}.automation-builder form{display:grid;gap:10px}.automation-rule-builder-block{padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);display:grid;gap:9px}.automation-rule-builder-block .eyebrow{margin-bottom:0}.automation-arrow{display:grid;place-items:center;color:var(--primary-text);font-size:22px}
.automation-run-panel{margin-top:18px}.automation-run-list{display:grid}.automation-run-list>div{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border)}.automation-run-status{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--surface-2)}.automation-run-status.success{color:#2fa37d}.automation-run-status.error{color:var(--danger)}.automation-run-list strong,.automation-run-list span{display:block}.automation-run-list strong{font-size:9px}.automation-run-list span,.automation-run-list time{font-size:8px;color:var(--muted)}
@media(max-width:950px){.automations-layout{grid-template-columns:1fr}.automation-builder{position:static}}@media(max-width:650px){.automation-rule-card{grid-template-columns:38px minmax(0,1fr)}.automation-rule-actions{grid-column:2}}


/* Project risk management */
.risks-page{max-width:1320px}.risk-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.risk-summary-grid article{display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;gap:0 10px;align-items:center;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:13px}.risk-summary-grid i{grid-row:1/3;width:38px;height:38px;border-radius:10px;background:var(--primary-soft);color:var(--primary-text);display:grid;place-items:center;font-size:18px}.risk-summary-grid strong{font-size:19px}.risk-summary-grid span{font-size:9px;color:var(--muted)}
.risks-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px}.risk-create-panel{height:max-content;position:sticky;top:18px}.risk-create-panel form{display:grid;gap:9px}.risk-score-inputs{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.risk-matrix-panel{margin-bottom:14px}.risk-matrix{display:grid;grid-template-columns:24px 1fr;grid-template-rows:1fr 22px;gap:7px}.risk-axis-y{writing-mode:vertical-rl;transform:rotate(180deg);font-size:9px;color:var(--muted);display:grid;place-items:center}.risk-axis-x{grid-column:2;font-size:9px;color:var(--muted);text-align:center}.risk-matrix-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;aspect-ratio:1.9/1}.risk-cell{border-radius:8px;display:flex;align-items:center;justify-content:center;gap:5px;font-size:9px;font-weight:700;min-height:48px}.risk-cell strong{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:rgba(255,255,255,.7);color:#1f2937}
.risk-low{background:#e8f7f1;color:#18795d}.risk-medium{background:#fff5d9;color:#8a6510}.risk-high{background:#ffe5cf;color:#a25516}.risk-critical{background:#ffe0e5;color:#a92e46}.dark .risk-low,.dark .risk-medium,.dark .risk-high,.dark .risk-critical{background:var(--surface-2)}.dark .risk-low{color:#6fe0b5}.dark .risk-medium{color:#ffd27a}.dark .risk-high{color:#ffb86b}.dark .risk-critical{color:#ff9aa9}
.risk-register{display:grid;gap:8px}.risk-row{display:grid;grid-template-columns:60px minmax(0,1fr) auto;gap:12px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.risk-score{width:60px;height:60px;border-radius:12px;display:grid;place-items:center;align-content:center}.risk-score strong{font-size:20px}.risk-score span{font-size:8px}.risk-title-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.risk-title-line>strong{font-size:11px}.risk-copy>p{font-size:9px;color:var(--muted);margin:4px 0}.risk-meta{display:flex;gap:8px;flex-wrap:wrap;font-size:8px;color:var(--muted)}.risk-plan{margin-top:7px;padding:7px 8px;border-radius:8px;background:var(--surface);font-size:8px}.risk-task-link{display:inline-flex;align-items:center;gap:5px;margin-top:6px;font-size:8px;color:var(--primary-text)}.risk-actions{display:flex;gap:5px;align-items:start}.risk-actions select{min-height:32px;padding:5px 28px 5px 8px;font-size:9px}
.overview-risks{display:grid;gap:7px}.overview-risks>div{display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid var(--border)}.risk-mini-score{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:10px;font-weight:800}.overview-risks p strong,.overview-risks p span{display:block}.overview-risks p strong{font-size:9px}.overview-risks p span{font-size:8px;color:var(--muted)}
@media(max-width:1000px){.risks-layout{grid-template-columns:1fr}.risk-create-panel{position:static}}@media(max-width:700px){.risk-summary-grid{grid-template-columns:1fr 1fr}.risk-row{grid-template-columns:50px minmax(0,1fr)}.risk-actions{grid-column:2}.risk-score{width:50px;height:50px}.risk-matrix-grid{aspect-ratio:auto}.risk-cell{min-height:42px}}@media(max-width:480px){.risk-summary-grid{grid-template-columns:1fr}}


/* Project wiki */
.wiki-page{max-width:1380px}.wiki-toolbar{display:grid;grid-template-columns:260px minmax(0,1fr) auto;gap:10px;align-items:end;margin-bottom:14px}.wiki-toolbar form:first-child label{display:grid;gap:6px;font-size:9px;color:var(--muted)}.wiki-search{position:relative}.wiki-search i{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted)}.wiki-search input{padding-left:34px}
.wiki-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:14px;align-items:start}.wiki-sidebar{position:sticky;top:18px;max-height:calc(100vh - 150px);overflow:auto}.wiki-page-list{display:grid;gap:5px}.wiki-page-list>a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:9px;color:var(--text)}.wiki-page-list>a:hover,.wiki-page-list>a.is-active{background:var(--surface-2)}.wiki-page-list strong,.wiki-page-list small{display:block}.wiki-page-list strong{font-size:10px}.wiki-page-list small{font-size:8px;color:var(--muted);margin-top:2px}.wiki-page-list em{font-size:8px;font-style:normal;background:var(--primary-soft);color:var(--primary-text);padding:3px 6px;border-radius:8px}
.wiki-content{min-height:620px}.wiki-document-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--border)}.wiki-document-header h1{font-size:24px;margin:4px 0}.wiki-document-header p{font-size:9px;color:var(--muted)}.wiki-rendered{padding:22px 4px;white-space:normal;line-height:1.75;font-size:11px;color:var(--text);min-height:220px}.wiki-editor-form{display:grid;gap:11px}.wiki-editor{min-height:420px;line-height:1.6;font-family:inherit}
.wiki-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;border-top:1px solid var(--border);padding-top:16px}.wiki-linked-list,.wiki-revision-list{display:grid;gap:6px}.wiki-linked-list>div,.wiki-revision-list>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 9px;border-radius:8px;background:var(--surface-2)}.wiki-linked-list a{font-size:9px;color:var(--text);font-weight:600}.wiki-revision-list strong,.wiki-revision-list small{display:block}.wiki-revision-list strong{font-size:9px}.wiki-revision-list small{font-size:8px;color:var(--muted)}.wiki-link-task-form{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:10px}
@media(max-width:900px){.wiki-toolbar{grid-template-columns:1fr}.wiki-layout{grid-template-columns:1fr}.wiki-sidebar{position:static;max-height:none}.wiki-detail-grid{grid-template-columns:1fr}}@media(max-width:600px){.wiki-document-header{flex-direction:column}.wiki-link-task-form{grid-template-columns:1fr}}


/* Recurring tasks */
.recurring-page{max-width:1280px}.recurring-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px}.recurring-builder{height:max-content;position:sticky;top:18px}.recurring-builder form{display:grid;gap:10px}.recurring-list{display:grid;gap:9px}.recurring-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:11px;align-items:start;padding:13px 14px;background:var(--surface);border:1px solid var(--border);border-radius:13px}.recurring-card.is-disabled{opacity:.58}.recurring-icon{width:42px;height:42px;border-radius:11px;background:var(--primary-soft);color:var(--primary-text);display:grid;place-items:center;font-size:20px}.recurring-copy>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.recurring-copy strong{font-size:12px}.recurring-copy p{font-size:9px;color:var(--muted);margin-top:3px}.recurring-copy small{display:block;font-size:8px;color:var(--muted);margin-top:5px}.recurring-actions{display:flex;gap:5px}.recurring-run-panel{margin-top:18px}.input-suffix{display:grid;grid-template-columns:1fr auto;align-items:center;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.input-suffix input{border:0!important;background:transparent!important}.input-suffix span{padding:0 10px;font-size:9px;color:var(--muted)}
@media(max-width:950px){.recurring-layout{grid-template-columns:1fr}.recurring-builder{position:static}}@media(max-width:650px){.recurring-card{grid-template-columns:38px minmax(0,1fr)}.recurring-actions{grid-column:2}}


/* Global search + command palette */
.command-trigger{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--muted);font:inherit;font-size:9px;cursor:pointer}.command-trigger:hover{border-color:var(--primary-text);color:var(--text)}.command-trigger i{font-size:17px}.command-trigger kbd,.command-search kbd,.command-footer kbd{font:inherit;font-size:8px;border:1px solid var(--border);background:var(--surface-2);border-radius:5px;padding:2px 5px;color:var(--muted);box-shadow:inset 0 -1px 0 var(--border)}.command-trigger span{font-weight:600;color:var(--text)}
.command-palette[hidden]{display:none}.command-palette{position:fixed;inset:0;z-index:1200;display:grid;place-items:start center;padding:8vh 18px 18px}.command-palette-backdrop{position:absolute;inset:0;border:0;background:rgba(10,15,25,.52);backdrop-filter:blur(3px)}.command-dialog{position:relative;width:min(720px,100%);max-height:min(720px,82vh);display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:0 28px 80px rgba(10,15,25,.28)}body.command-open{overflow:hidden}
.command-search{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border)}.command-search>i{font-size:21px;color:var(--muted)}.command-search input{width:100%;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;min-height:34px;font-size:13px;color:var(--text)}.command-body{overflow:auto;padding:12px}.command-empty>.eyebrow{display:block;padding:4px 5px 9px}.command-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.command-quick-grid>a{display:flex;align-items:center;gap:10px;padding:10px;border-radius:11px;color:var(--text);border:1px solid transparent}.command-quick-grid>a:hover{background:var(--surface-2);border-color:var(--border)}.command-quick-grid>a>i{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:var(--primary-soft);color:var(--primary-text);font-size:18px}.command-quick-grid strong,.command-quick-grid small{display:block}.command-quick-grid strong{font-size:10px}.command-quick-grid small{font-size:8px;color:var(--muted);margin-top:1px}
.command-results{display:grid;gap:4px}.command-result-item{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 10px;border-radius:11px;color:var(--text);border:1px solid transparent}.command-result-item:hover,.command-result-item.is-active{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 22%,var(--border))}.command-result-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:var(--surface-2);font-size:18px;color:var(--primary-text)}.command-result-copy{min-width:0}.command-result-copy strong,.command-result-copy small,.command-result-copy em{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command-result-copy strong{font-size:10px}.command-result-copy small{font-size:8px;color:var(--primary-text);margin-top:1px}.command-result-copy em{font-size:8px;color:var(--muted);font-style:normal;margin-top:2px}.command-result-type{font-size:8px;color:var(--muted);background:var(--surface-2);border-radius:999px;padding:4px 7px}.command-loading,.command-no-results{min-height:160px;display:grid;place-items:center;align-content:center;gap:6px;color:var(--muted);font-size:9px;text-align:center}.command-loading i,.command-no-results i{font-size:28px;color:var(--primary-text)}.command-no-results strong{font-size:11px;color:var(--text)}.command-no-results span{font-size:9px}.command-footer{display:flex;align-items:center;gap:15px;padding:9px 14px;border-top:1px solid var(--border);font-size:8px;color:var(--muted)}.command-footer span{display:flex;align-items:center;gap:4px}
@media(max-width:760px){.command-trigger span,.command-trigger kbd{display:none}.command-trigger{width:36px;justify-content:center;padding:0}.command-palette{padding:10px}.command-dialog{max-height:calc(100vh - 20px)}.command-quick-grid{grid-template-columns:1fr}.command-result-item{grid-template-columns:36px minmax(0,1fr)}.command-result-type{display:none}.command-footer{display:none}}


/* Unified work inbox */
.inbox-page{max-width:1240px}.inbox-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 22px;margin-bottom:14px;background:linear-gradient(135deg,var(--surface),var(--surface-2));border:1px solid var(--border);border-radius:16px}.inbox-hero h2{font-size:22px;margin:3px 0}.inbox-hero p{font-size:10px;color:var(--muted)}.inbox-hero-metrics{display:grid;grid-template-columns:repeat(3,100px);gap:8px}.inbox-hero-metrics article{padding:10px 12px;border-radius:11px;background:var(--surface);border:1px solid var(--border)}.inbox-hero-metrics strong,.inbox-hero-metrics span{display:block}.inbox-hero-metrics strong{font-size:17px}.inbox-hero-metrics span{font-size:8px;color:var(--muted)}
.inbox-filters{margin-bottom:12px;overflow:auto}.inbox-list{display:grid;gap:8px}.inbox-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px 13px;background:var(--surface);border:1px solid var(--border);border-radius:13px}.inbox-card.inbox-overdue{border-left:3px solid var(--danger)}.inbox-card.inbox-intake{border-left:3px solid var(--primary)}.inbox-card-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:var(--surface-2);color:var(--primary-text);font-size:19px}.inbox-overdue .inbox-card-icon{color:var(--danger)}.inbox-card-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.inbox-card-title>a{font-size:11px;font-weight:700;color:var(--text)}.inbox-card-copy>p{font-size:9px;color:var(--muted);margin:3px 0}.inbox-card-meta{display:flex;gap:9px;flex-wrap:wrap;font-size:8px;color:var(--muted)}.inbox-card-actions{display:flex;align-items:center;gap:5px}.inbox-snooze-menu{position:relative}.inbox-snooze-menu summary{list-style:none}.inbox-snooze-menu summary::-webkit-details-marker{display:none}.inbox-snooze-menu>div{position:absolute;right:0;top:42px;z-index:20;min-width:130px;padding:5px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 16px 35px rgba(10,15,25,.15)}.inbox-snooze-menu form{display:block}.inbox-snooze-menu button{width:100%;padding:7px 8px;border:0;background:transparent;color:var(--text);font:inherit;font-size:9px;text-align:left;border-radius:7px;cursor:pointer}.inbox-snooze-menu button:hover{background:var(--surface-2)}
@media(max-width:850px){.inbox-hero{align-items:flex-start;flex-direction:column}.inbox-hero-metrics{width:100%;grid-template-columns:repeat(3,1fr)}.inbox-card{grid-template-columns:38px minmax(0,1fr)}.inbox-card-actions{grid-column:2;justify-content:flex-start;flex-wrap:wrap}}@media(max-width:520px){.inbox-hero-metrics{grid-template-columns:1fr}.inbox-card-actions .button span{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}


/* =========================================================
   Visual density + typography normalization — 2026-09-30
   ========================================================= */
:root{
  --sidebar:224px;
  --font-xs:10px;
  --font-sm:11px;
  --font-md:12.5px;
  --font-lg:14px;
}
body{
  font-size:13px;
  line-height:1.48;
}

/* Dark mode: deeper neutral surfaces; avoid washed-out gray cards. */
body.dark{
  --bg:#111317;
  --surface:#181b20;
  --surface-2:#20242a;
  --text:#eef1f5;
  --muted:#9da6b2;
  --border:#2d333b;
  --primary-soft:#2a2548;
  --shadow:0 18px 45px rgba(0,0,0,.34);
  --shadow-sm:0 8px 24px rgba(0,0,0,.25);
}
body.dark .app-sidebar{background:#171a1f}
body.dark .topbar{background:transparent}
body.dark .hero-card,
body.dark .panel,
body.dark .stat-card,
body.dark .plan-card,
body.dark .pricing-card,
body.dark .auth-card,
body.dark .board-column,
body.dark .modal-card,
body.dark .wiki-content,
body.dark .wiki-sidebar,
body.dark .automation-rule-card,
body.dark .recurring-card,
body.dark .inbox-card{
  background:var(--surface);
}
body.dark .empty-state{
  background:var(--surface);
  border-color:var(--border);
}
body.dark .task-card,
body.dark .detail-tile,
body.dark .subscription-card,
body.dark .wiki-linked-list>div,
body.dark .wiki-revision-list>div,
body.dark .command-result-icon,
body.dark .inbox-card-icon{
  background:#1d2127;
}
body.dark input:not([type="checkbox"]):not([type="radio"]),
body.dark textarea,
body.dark select{
  background:#16191e;
}
body.dark .button-secondary,
body.dark .icon-button,
body.dark .command-trigger{
  background:#181b20;
}
body.dark .button-secondary:hover,
body.dark .icon-button:hover,
body.dark .command-trigger:hover{
  background:#20242a;
}

/* Sidebar: compact and independently scrollable. */
.app-sidebar{
  padding:14px 10px 10px;
  overflow:hidden;
}
.brand{
  gap:10px;
  padding:5px 7px 12px;
  flex:0 0 auto;
}
.brand-mark{
  width:36px;
  height:36px;
  border-radius:10px;
  font-size:17px;
}
.brand strong{font-size:14px}
.brand small{font-size:9px;margin-top:1px}

.app-nav{
  display:flex;
  flex-direction:column;
  gap:1px;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding:2px 2px 8px 0;
}

.app-nav a,
.sidebar-footer a,
.nav-button{
  gap:9px;
  min-height:34px;
  padding:0 9px;
  border-radius:8px;
  font-size:11.5px;
  line-height:1.2;
  flex:0 0 auto;
}
.app-nav a i,
.sidebar-footer i,
.nav-button i{
  font-size:16px;
  width:18px;
  text-align:center;
}
.app-nav a.is-active{font-weight:600}
.sidebar-footer{
  margin-top:auto;
  padding-top:8px;
  gap:2px;
  background:inherit;
  flex:0 0 auto;
}
.nav-count{
  margin-left:auto;
  min-width:18px;
  height:18px;
  padding:0 5px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:var(--primary);
  color:#fff;
  font-size:9px;
  font-style:normal;
  font-weight:700;
}

/* Collapsed sidebar density */
body.sidebar-collapsed{--sidebar:68px}
body.sidebar-collapsed .app-sidebar{padding-left:8px;padding-right:8px}
body.sidebar-collapsed .brand-mark{width:36px;height:36px}
body.sidebar-collapsed .app-nav a,
body.sidebar-collapsed .sidebar-footer a,
body.sidebar-collapsed .nav-button{min-height:36px}

/* Main frame and topbar density */
.app-main{
  padding-left:26px;
  padding-right:26px;
  padding-bottom:36px;
}
.topbar{
  min-height:82px;
  margin-bottom:20px;
  gap:14px;
}
.topbar h1{
  font-size:22px;
  letter-spacing:-.025em;
}
.topbar p{
  margin-top:3px;
  font-size:11.5px;
}
.topbar-actions{gap:7px}
.icon-button{
  width:36px;
  height:36px;
  border-radius:9px;
  font-size:18px;
}
.command-trigger{
  min-height:34px;
  border-radius:9px;
  font-size:10px;
}
.button{
  min-height:38px;
  padding:0 13px;
  border-radius:9px;
  font-size:11.5px;
}
.button-small{
  min-height:30px;
  padding:0 9px;
  font-size:10.5px;
}

/* Global type scale: remove the 8–9px visual fragmentation. */
.eyebrow{font-size:10px}
.section-heading h2{font-size:17px}
.section-heading p{font-size:11.5px}
.panel-header h2,.panel-header h3{font-size:16px}
.panel-header p{font-size:11px}
label{font-size:11px}
.form-error,.form-success,.notice{font-size:11.5px}
.stat-card span,
.plan-card p,
.feature-list li{font-size:11.5px}
.plan-meta,
.task-footer,
.completed-drawer summary{font-size:10.5px}
.status-badge{font-size:10px}
.task-card h4{font-size:12px}
.task-card p{font-size:10.5px}
.detail-tile small{font-size:9.5px}
.detail-tile strong{font-size:11px}

/* Compact generic surfaces. */
.panel{padding:18px}
.panel+.panel{margin-top:14px}
.panel-header{margin-bottom:13px}
.empty-state{
  padding:34px 24px;
  background:var(--surface);
}
.empty-state i{font-size:34px}
.empty-state h3{font-size:14px;margin:8px 0 4px}
.empty-state p{font-size:11px;margin-bottom:14px}

input:not([type="checkbox"]):not([type="radio"]),
textarea,
select{
  min-height:39px;
  border-radius:9px;
  padding:8px 10px;
  font-size:11.5px;
}
textarea{min-height:90px}

/* Normalize module-specific microcopy. */
.automation-rule-copy strong,
.recurring-copy strong,
.risk-title-line>strong,
.inbox-card-title>a,
.command-result-copy strong,
.wiki-page-list strong{
  font-size:11px;
}
.automation-rule-copy p,
.recurring-copy p,
.risk-copy>p,
.inbox-card-copy>p,
.wiki-document-header p,
.wiki-linked-list a,
.wiki-revision-list strong,
.command-result-copy small,
.command-result-copy em{
  font-size:10px;
}
.automation-rule-copy small,
.recurring-copy small,
.risk-meta,
.risk-task-link,
.inbox-card-meta,
.wiki-page-list small,
.wiki-revision-list small,
.command-result-type,
.command-footer{
  font-size:9.5px;
}
.automation-project-switcher label,
.wiki-toolbar form:first-child label{
  font-size:10px;
}

/* Wiki: reduce oversized gray empty canvas and blend with app surface. */
.wiki-layout{grid-template-columns:260px minmax(0,1fr);gap:12px}
.wiki-content{min-height:520px}
.wiki-sidebar{max-height:calc(100vh - 125px)}
.wiki-page-list>a{
  padding:8px 9px;
  border-radius:8px;
}
.wiki-document-header h1{font-size:21px}
.wiki-rendered{font-size:11.5px}
body.dark .wiki-content .empty-state{
  background:#1b1f24;
  border:1px dashed #323943;
}

/* Board dark mode should feel lighter structurally, not as gray blocks. */
body.dark .board-column{
  background:transparent;
  border-color:#2a3038;
  box-shadow:none;
}
body.dark .task-card{
  background:#1b1f24;
  border-color:#303640;
}
body.dark .column-menu{
  background:#181b20;
}

/* Settings and utility cards */
body.dark .settings-menu,
body.dark .subscription-card,
body.dark .overview-finance>div,
body.dark .overview-time>div,
body.dark .risk-row,
body.dark .automation-rule-builder-block{
  background:#1b1f24;
}

/* Mobile keeps a readable drawer, but uses the same compact rows. */
@media(max-width:760px){
  .app-sidebar{
    width:232px;
    padding:14px 10px 10px;
  }
  body.sidebar-collapsed .app-sidebar .app-nav a,
  body.sidebar-collapsed .app-sidebar .sidebar-footer a,
  body.sidebar-collapsed .app-sidebar .nav-button{
    padding:0 9px;
  }
  .app-main{padding:0 14px 28px}
  .topbar{min-height:72px;margin-bottom:16px}
  .topbar h1{font-size:19px}
}


/* Phase 7 — navigation hierarchy */
.nav-group{display:grid;gap:2px;margin-bottom:12px}
.nav-group-label{padding:8px 14px 4px;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.sidebar-collapsed .nav-group-label{display:none}
.project-tool-links{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-right:auto}
.project-tool-links a{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 9px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--muted);font-size:10px;font-weight:600}
.project-tool-links a:hover{color:var(--text);background:var(--surface-2)}
.project-tool-links a.is-locked{opacity:.7}
.project-tool-links a>i:last-child:not(:first-child){font-size:11px}
@media(max-width:900px){.project-tool-links{width:100%;overflow:auto;flex-wrap:nowrap;padding-bottom:2px}.planner-chrome-top{flex-wrap:wrap}}


/* Phase 8 — task workspace */
.task-detail-modal{justify-content:flex-end;align-items:stretch;padding:0}
.task-detail-modal-card{width:min(760px,94vw);max-width:none;height:100vh;max-height:100vh;border-radius:18px 0 0 18px;overflow:auto;padding:0 24px 32px;box-shadow:-18px 0 50px rgba(17,24,39,.18)}
.task-detail-header{position:sticky;top:0;z-index:5;background:var(--surface);padding:22px 0 14px;border-bottom:1px solid var(--border)}
.task-context-line{display:flex;align-items:center;gap:4px;margin-top:4px;color:var(--muted);font-size:10px}
.task-detail-jump{position:sticky;top:86px;z-index:4;display:flex;gap:6px;overflow:auto;background:var(--surface);padding:10px 0;border-bottom:1px solid var(--border)}
.task-detail-jump a{white-space:nowrap;padding:6px 9px;border-radius:8px;background:var(--surface-2);color:var(--muted);font-size:10px;font-weight:600}
.task-detail-jump a:hover{color:var(--primary-text);background:var(--primary-soft)}
.task-detail-primary{padding-top:18px}
.task-section-anchor{display:block;position:relative;top:-130px;visibility:hidden}
.task-relationship-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.task-relationship-grid>div{padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2)}
.task-relationship-grid>div>span{display:block;margin-bottom:8px;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.task-relation-list{display:flex;flex-wrap:wrap;gap:6px}
.task-relation-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:6px 8px;border-radius:8px;font-size:10px;font-weight:600}
.task-relation-chip:hover{border-color:color-mix(in srgb,var(--primary) 40%,transparent);color:var(--primary-text)}
@media(max-width:620px){.task-detail-modal-card{width:100vw;border-radius:0;padding:0 16px 24px}.task-relationship-grid{grid-template-columns:1fr}.task-detail-jump{top:82px}}


/* Phase 9 — dependency-aware timeline */
.timeline-kpis{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.timeline-kpis span{padding:5px 8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border)}
.timeline-warning{display:flex;align-items:flex-start;gap:10px;padding:12px 18px;background:rgba(201,122,19,.10);border-bottom:1px solid rgba(201,122,19,.25);color:var(--text)}
.timeline-warning>i{font-size:20px;color:#c97a13;margin-top:1px}
.timeline-warning div{display:grid;gap:2px}.timeline-warning strong{font-size:11px}.timeline-warning span{font-size:10px;color:var(--muted)}
.gantt-axis-row{display:grid;grid-template-columns:240px minmax(700px,1fr);border-bottom:1px solid var(--border);background:var(--surface-2)}
.gantt-axis-label{padding:9px 14px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-right:1px solid var(--border)}
.gantt-axis{display:flex;justify-content:space-between;padding:9px 8px;color:var(--muted);font-size:9px}
.gantt-track{overflow:hidden}
.gantt-today{position:absolute;top:0;bottom:0;width:2px;background:rgba(214,69,93,.7);z-index:1;pointer-events:none}
.gantt-today:before{content:"Hoy";position:absolute;top:2px;left:4px;font-size:8px;font-style:normal;color:#c74359;background:var(--surface);padding:1px 3px;border-radius:3px}
.gantt-bar{z-index:2}
.gantt-row.has-schedule-conflict .gantt-label{box-shadow:inset 3px 0 #c97a13}
.gantt-row.has-schedule-conflict .gantt-label small b{color:#c97a13}
.gantt-dependencies{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 12px 8px 252px;border-bottom:1px solid var(--border);background:var(--surface-2);font-size:9px;color:var(--muted)}
.gantt-dependencies button{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:7px;padding:4px 6px;background:var(--surface);color:var(--text);font-size:9px}
.gantt-dependencies button.is-done{color:var(--success)}
.gantt-dependencies button.is-open{color:#b8791e}
.timeline-conflicts{padding:16px 20px;border-top:1px solid var(--border)}
.timeline-conflicts h3{font-size:13px;margin-bottom:9px}
.timeline-conflicts>div{display:grid;grid-template-columns:minmax(160px,240px) 1fr;gap:10px;padding:8px 0;border-top:1px solid var(--border);font-size:10px}
.timeline-conflicts button{border:0;background:none;color:var(--primary-text);text-align:left;font-weight:600}
.timeline-conflicts span{color:var(--muted)}
@media(max-width:760px){.gantt-axis-row{grid-template-columns:150px minmax(620px,1fr)}.gantt-dependencies{padding-left:162px}.timeline-conflicts>div{grid-template-columns:1fr}}


/* Phase 10 — workload and capacity */
.capacity-form{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.capacity-form label{display:grid;gap:4px;color:var(--muted);font-size:9px}.capacity-form input{width:86px;min-height:34px}
.workload-capacity-list{display:grid;gap:9px}
.workload-capacity-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(280px,2fr) 170px;gap:14px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}
.workload-person{display:flex;align-items:center;gap:9px}.person-avatar.small{width:34px;height:34px;font-size:13px}.workload-person div{display:grid}.workload-person strong{font-size:11px}.workload-person small{font-size:9px;color:var(--muted)}
.workload-metrics{display:grid;grid-template-columns:repeat(4,minmax(70px,1fr));gap:8px}.workload-metrics span{font-size:9px;color:var(--muted)}.workload-metrics b{display:block;color:var(--text);font-size:11px}
.workload-utilization{display:grid;grid-template-columns:1fr 42px;gap:9px;align-items:center}.workload-utilization>div{height:9px;background:var(--surface);border-radius:20px;overflow:hidden}.workload-utilization i{display:block;height:100%;background:var(--success)}.workload-capacity-row.status-near_capacity .workload-utilization i{background:#d99735}.workload-capacity-row.status-overloaded .workload-utilization i{background:var(--danger)}.workload-note{margin-top:10px}
@media(max-width:900px){.workload-capacity-row{grid-template-columns:1fr}.workload-metrics{grid-template-columns:repeat(2,1fr)}}


/* Phase 11 — advanced analytics */
.analytics-page{max-width:1440px}
.analytics-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}
.analytics-kpi-grid article{display:grid;grid-template-columns:40px 1fr;gap:11px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px}
.analytics-kpi-grid article>i{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-text);font-size:19px}
.analytics-kpi-grid div{display:grid}.analytics-kpi-grid strong{font-size:21px}.analytics-kpi-grid span{font-size:10px;font-weight:600}.analytics-kpi-grid small{font-size:9px;color:var(--muted)}
.analytics-definition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.analytics-definition-grid>div{padding:11px;border-radius:10px;background:var(--surface-2);display:grid;gap:3px}.analytics-definition-grid strong{font-size:10px}.analytics-definition-grid span{font-size:9px;color:var(--muted)}
.analytics-table-wrap{overflow:auto}.analytics-table{width:100%;border-collapse:collapse;min-width:1050px}.analytics-table th,.analytics-table td{padding:11px 12px;border-bottom:1px solid var(--border);text-align:left;font-size:10px;white-space:nowrap}.analytics-table th{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:9px}.analytics-table td:first-child a{display:block;color:var(--text);font-weight:700}.analytics-table td small{display:block;color:var(--muted);margin-top:2px}
@media(max-width:900px){.analytics-kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.analytics-kpi-grid,.analytics-definition-grid{grid-template-columns:1fr}}


/* Phase 12 — project health factors */
.health-factor-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.health-factor-list span{padding:5px 8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--muted);font-size:9px}
.portfolio-table td .health-badge+small{display:block;max-width:190px;margin-top:5px;color:var(--muted);white-space:normal;line-height:1.35}


/* Phase 14 — intake hardening */
.intake-audit{margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}
.cf-turnstile{margin:14px 0}

/* Phase 15 — automations v2 */
.automation-chip-line{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin:6px 0;font-size:10px}
.automation-chip-line>b{color:var(--muted)}
.automation-chip-line>span{display:inline-flex;padding:4px 7px;border:1px solid var(--border);border-radius:7px;background:var(--surface-2);color:var(--text)}
.automation-condition-row,.automation-action-row{display:grid;grid-template-columns:145px 120px minmax(0,1fr);gap:7px;padding:8px 0;border-top:1px solid var(--border)}
.automation-action-row{grid-template-columns:180px minmax(0,1fr)}
.automation-condition-values,.automation-action-values{min-width:0}
.automation-condition-values>*[hidden],.automation-action-values>*[hidden]{display:none}
.automation-condition-values>*,.automation-action-values>*{width:100%}
.automation-run-status.skipped{background:var(--surface-2);color:var(--muted)}
@media(max-width:620px){.automation-condition-row,.automation-action-row{grid-template-columns:1fr}}


/* Phase 16 — multi-currency portfolio */
.portfolio-currency-breakdown{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:0 0 18px}
.portfolio-currency-breakdown article{display:grid;gap:3px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.portfolio-currency-breakdown strong{font-size:12px}.portfolio-currency-breakdown span,.portfolio-currency-breakdown small{font-size:9px;color:var(--muted)}


/* Phase 19 — SaaS admin portal */
.admin-shell{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:100vh}.admin-nav{padding:24px 18px;border-right:1px solid var(--border);background:var(--surface)}.admin-brand{display:block;font-weight:700;font-size:18px;margin-bottom:26px;color:var(--text)}.admin-nav>a:not(.admin-brand){display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:10px;color:var(--muted);margin-bottom:3px}.admin-nav>a.is-active{background:var(--primary-soft);color:var(--primary-text);font-weight:600}.admin-nav hr{border:0;border-top:1px solid var(--border);margin:18px 0}.admin-main{padding:28px;max-width:1500px;width:100%;box-sizing:border-box}.admin-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:24px}.admin-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px;margin-bottom:22px}.admin-card,.admin-panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px}.admin-card strong{display:block;font-size:25px}.admin-card span,.admin-note{font-size:11px;color:var(--muted)}.admin-note{margin:0 0 14px}.admin-table-wrap{overflow:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;font-size:11px;white-space:nowrap;vertical-align:top}.admin-table th{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.05em}.admin-table small{display:block;color:var(--muted);margin-top:2px}.admin-table code{font-size:9px}.badge{display:inline-flex;padding:3px 8px;border-radius:999px;background:var(--primary-soft)}.admin-status-active,.admin-status-trialing{color:var(--success)}.admin-status-past_due{color:var(--warning)}.admin-status-canceled,.admin-status-unpaid{color:var(--danger)}.admin-filter{display:flex;gap:8px;margin-bottom:14px;max-width:650px}.admin-filter input{flex:1}.admin-filter select{max-width:240px}@media(max-width:760px){.admin-shell{grid-template-columns:1fr}.admin-nav{border-right:0;border-bottom:1px solid var(--border)}}


/* Review phases 9-10 — milestones and daily workload */
.gantt-bar.is-milestone{height:14px!important;width:14px!important;min-width:14px;border-radius:3px;transform:rotate(45deg);overflow:visible;top:50%;margin-top:-7px}
.gantt-bar.is-milestone span{position:absolute;left:18px;top:-5px;transform:rotate(-45deg);white-space:nowrap;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:3px 5px;color:var(--text);font-size:8px}
.workload-capacity-row{grid-template-columns:minmax(180px,1fr) minmax(280px,2fr) 170px}
.workload-days{grid-column:1/-1;display:grid;grid-template-columns:repeat(7,minmax(60px,1fr));gap:6px;padding-top:8px;border-top:1px solid var(--border)}
.workload-days>div{position:relative;display:grid;gap:2px;padding:7px;border-radius:8px;background:var(--surface)}
.workload-days span{font-size:8px;color:var(--muted)}.workload-days strong{font-size:10px}.workload-days .is-over{box-shadow:inset 0 0 0 1px var(--danger);color:var(--danger)}.workload-days i{position:absolute;right:5px;top:5px}
.workload-unscheduled{grid-column:1/-1;display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:9px}
@media(max-width:900px){.workload-days{grid-template-columns:repeat(4,1fr)}}@media(max-width:560px){.workload-days{grid-template-columns:repeat(2,1fr)}}


/* Interaction fixes + dashboard project views */
.hero-card:after{pointer-events:none}
.hero-card>*{position:relative;z-index:1}
.task-state-form{margin:0}
.task-state-toggle{width:30px;height:30px;border:0;background:transparent;color:var(--primary-text);display:grid;place-items:center;border-radius:50%;font-size:22px;padding:0}
.task-state-toggle:hover{background:var(--primary-soft);transform:scale(1.05)}
.my-day-card.is-complete .task-state-toggle,.personal-task-card.is-complete .task-state-toggle{color:var(--success)}
.project-view-tools{display:flex;align-items:center;gap:10px}
.project-view-switcher{display:flex;align-items:center;padding:3px;border:1px solid var(--border);background:var(--surface);border-radius:10px}
.project-view-switcher a{width:34px;height:32px;display:grid;place-items:center;border-radius:7px;color:var(--muted);font-size:17px}
.project-view-switcher a:hover{background:var(--surface-2);color:var(--text)}
.project-view-switcher a.is-active{background:var(--primary-soft);color:var(--primary-text)}
.dashboard-plan-delete{color:var(--danger)}
.project-list-view{display:grid;gap:9px}
.project-list-row{display:grid;grid-template-columns:44px minmax(0,1fr) 150px auto;gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}
.project-list-copy>a{color:var(--text);font-weight:700}.project-list-copy p{color:var(--muted);font-size:11px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.project-list-stat{display:grid}.project-list-stat strong{font-size:16px}.project-list-stat span{font-size:10px;color:var(--muted)}
.project-list-actions,.project-table-actions{display:flex;align-items:center;gap:6px}
.project-table-wrap{border:1px solid var(--border);border-radius:14px;overflow:auto;background:var(--surface)}
.project-table{width:100%;border-collapse:collapse}.project-table th,.project-table td{padding:13px 15px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}
.project-table th{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.project-table td{font-size:11px}.project-table td small{display:block;color:var(--muted);margin-top:3px;max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.progress.compact{width:120px;height:5px;margin:4px 0 0}
@media(max-width:800px){.project-list-row{grid-template-columns:40px minmax(0,1fr)}.project-list-stat,.project-list-actions{grid-column:2}.project-section-heading{align-items:flex-start}.project-view-tools{align-items:flex-end;flex-direction:column}}


/* Mobile usability hardening */
@media(max-width:760px){
  .icon-button,.task-state-toggle,.project-view-switcher a{min-width:44px;width:44px;min-height:44px;height:44px}
  .button{min-height:44px}
  .button-small{min-height:40px}
  .command-trigger{min-height:44px}
  .topbar{align-items:center;flex-wrap:wrap;padding:8px 0}
  .topbar-copy{flex:1 1 150px}
  .topbar-actions{margin-left:auto;max-width:100%}
  .topbar-actions .button{padding:0 12px}
  .hero-panel{gap:12px}
  .hero-card{display:grid;grid-template-columns:1fr;padding:18px}
  .hero-card .button{width:100%;margin-top:4px}
  .hero-side{min-height:150px;padding:18px}
  .plans-grid{grid-template-columns:1fr}
  .plan-card-actions{flex-wrap:wrap}
  .plan-card-actions .button-primary{flex:1 1 calc(100% - 104px)}
  .project-view-tools{width:100%;align-items:flex-start;flex-direction:row;justify-content:space-between}
  .project-view-switcher{margin-left:auto}
  .project-list-row{padding:12px}
  .project-list-actions{flex-wrap:wrap}
  .project-table-wrap{max-width:100%;-webkit-overflow-scrolling:touch}
  .modal{padding:10px}
  .modal-card{max-height:calc(100dvh - 20px);padding:18px}
  .my-day-card{grid-template-columns:44px minmax(0,1fr) 44px;align-items:start}
  .my-day-suggestion{grid-template-columns:minmax(0,1fr) 44px}
  .personal-task-card{grid-template-columns:44px minmax(0,1fr)}
  .personal-task-actions{grid-column:2;flex-wrap:wrap}
  .task-state-form.personal-task-check{grid-column:1;grid-row:1}
  .task-state-toggle{font-size:24px}
}
@media(max-width:460px){
  .topbar-actions{width:auto}
  .topbar-actions .command-trigger span,.topbar-actions .command-trigger kbd{display:none}
  .project-section-heading{display:grid;align-items:start}
  .project-view-tools{margin-top:8px}
  .plan-card-actions{flex-direction:row}
}

@media(max-width:760px){.command-trigger{min-width:44px}}

@media(max-width:900px){
  .wiki-page,.wiki-toolbar,.wiki-layout,.wiki-sidebar,.wiki-content{min-width:0;max-width:100%}
  .wiki-toolbar{grid-template-columns:minmax(0,1fr)}
  .wiki-layout{grid-template-columns:minmax(0,1fr)}
  .wiki-sidebar{position:static;max-height:none}
  .wiki-search,.wiki-search input{min-width:0;max-width:100%}
}


/* In-app confirmation / prompt dialog */
.app-dialog[hidden]{display:none}
.app-dialog{position:fixed;inset:0;z-index:1600;display:grid;place-items:center;padding:20px}
.app-dialog-backdrop{position:absolute;inset:0;border:0;background:rgba(8,12,20,.62);backdrop-filter:blur(4px)}
.app-dialog-card{position:relative;width:min(460px,100%);background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:0 28px 90px rgba(0,0,0,.34);padding:24px;display:grid;gap:16px}
.app-dialog-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-text);font-size:24px}
.app-dialog.is-danger .app-dialog-icon{background:rgba(220,53,69,.12);color:var(--danger)}
.app-dialog-copy h2{font-size:18px}.app-dialog-copy p{margin-top:6px;color:var(--muted);font-size:12px;line-height:1.55;white-space:pre-line}
.app-dialog-input{margin-top:-2px}
.app-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:2px}
.app-dialog.is-danger #app-dialog-confirm{background:var(--danger);border-color:var(--danger);color:#fff}
body.app-dialog-open{overflow:hidden}
@media(max-width:520px){.app-dialog{padding:12px;align-items:end}.app-dialog-card{border-radius:20px 20px 12px 12px;padding:20px}.app-dialog-actions{display:grid;grid-template-columns:1fr 1fr}.app-dialog-actions .button{width:100%}}


/* Live project status dashboard */
.project-status-page{max-width:1500px;margin:0 auto}.status-share-bar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;padding:22px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.status-share-bar h2{font-size:22px;margin:4px 0}.status-share-bar p{color:var(--muted)}.status-share-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.status-share-actions form{margin:0}.status-tabs{display:flex;gap:5px;overflow:auto;padding:5px;background:var(--surface);border:1px solid var(--border);border-radius:13px;margin-bottom:10px}.status-tabs button{border:0;background:transparent;color:var(--muted);padding:9px 12px;border-radius:9px;white-space:nowrap;font-weight:600}.status-tabs button.is-active{background:var(--primary-soft);color:var(--primary-text)}.status-refresh-line{display:flex;justify-content:flex-end;align-items:center;gap:10px;color:var(--muted);font-size:10px;margin:0 0 14px}.status-refresh-line>span:first-child{margin-right:auto}.status-live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--success);margin-right:5px;box-shadow:0 0 0 4px rgba(21,147,108,.1)}.status-panel{display:none}.status-panel.is-active{display:block}.status-hero{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:24px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:26px;margin-bottom:14px}.status-health-line{display:flex;align-items:baseline;gap:10px;margin:6px 0}.status-health-line strong{font-size:28px}.status-health-line span{color:var(--muted)}.status-progress-ring{width:150px;height:150px;border-radius:50%;background:var(--primary-soft);display:grid;place-items:center;text-align:center;margin:auto}.status-progress-ring strong{display:block;font-size:34px;color:var(--primary-text)}.status-progress-ring span{display:block;font-size:10px;color:var(--muted)}.status-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}.status-kpis article{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px}.status-kpis strong{display:block;font-size:22px}.status-kpis span{font-size:10px;color:var(--muted)}.status-two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.status-list{display:grid;gap:8px}.status-list>div,.status-activity>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.status-list strong,.status-activity strong{font-size:11px}.status-list span,.status-activity span{font-size:10px;color:var(--muted);text-align:right}.status-bars{display:grid;gap:12px}.status-bars>div>div{display:flex;justify-content:space-between;font-size:11px}.status-bars i{display:block;height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden;margin-top:5px}.status-bars b{display:block;height:100%;background:var(--primary);border-radius:inherit}.status-timeline{display:grid;gap:0}.status-timeline>div{display:grid;grid-template-columns:160px minmax(0,1fr) 120px;gap:16px;padding:12px 0;border-bottom:1px solid var(--border)}.status-timeline span,.status-timeline small{font-size:10px;color:var(--muted)}.status-table-wrap{overflow:auto}.status-table{width:100%;border-collapse:collapse}.status-table th,.status-table td{padding:11px;border-bottom:1px solid var(--border);text-align:left;font-size:10px}.status-table th{color:var(--muted);text-transform:uppercase;font-size:9px}.status-table td small{display:block;color:var(--muted)}.status-risk-grid,.status-team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.status-risk-grid article,.status-team-grid article{padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.status-risk-grid h4{margin:5px 0}.status-risk-grid p{font-size:10px;color:var(--muted);min-height:38px}.status-risk-grid small,.status-team-grid span,.status-team-grid b{display:block;font-size:9px;color:var(--muted);margin-top:4px}.project-status-public{background:var(--bg)}.project-status-public-shell{width:min(1500px,100%);margin:auto;padding:24px}.public-status-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.public-status-head h1{font-size:28px}.public-status-head p{color:var(--muted)}body.status-presentation .app-sidebar,body.status-presentation .topbar,body.status-presentation .status-share-bar{display:none!important}body.status-presentation .app-main{margin-left:0;padding:24px}body.status-presentation .project-status-page{max-width:none}@media(max-width:900px){.status-kpis{grid-template-columns:repeat(3,1fr)}.status-two-col{grid-template-columns:1fr}.status-hero{grid-template-columns:1fr}.status-progress-ring{width:120px;height:120px}.status-timeline>div{grid-template-columns:1fr}.status-share-bar{align-items:flex-start;flex-direction:column}}@media(max-width:560px){.status-kpis{grid-template-columns:repeat(2,1fr)}.project-status-public-shell{padding:12px}.public-status-head{align-items:flex-start;flex-direction:column}}


/* Project status dark-mode controls */
.public-status-actions{display:flex;align-items:center;gap:12px}.status-theme-toggle{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:8px 11px;font:inherit;font-size:10px;font-weight:600;cursor:pointer}.status-theme-toggle:hover{background:var(--surface-2)}body.project-status-public.dark{background:var(--bg);color:var(--text)}body.project-status-public.dark .public-status-head,body.project-status-public.dark .status-refresh-line{color:var(--text)}body.project-status-public.dark .public-status-head p,body.project-status-public.dark .status-refresh-line{color:var(--muted)}body.project-status-public.dark .status-tabs,body.project-status-public.dark .status-hero,body.project-status-public.dark .status-kpis article,body.project-status-public.dark .panel{background:var(--surface);border-color:var(--border)}body.project-status-public.dark .status-risk-grid article,body.project-status-public.dark .status-team-grid article{background:var(--surface-2);border-color:var(--border)}body.project-status-public.dark .status-table th,body.project-status-public.dark .status-table td,body.project-status-public.dark .status-list>div,body.project-status-public.dark .status-activity>div,body.project-status-public.dark .status-timeline>div{border-color:var(--border)}body.project-status-public.dark .status-tabs button{color:var(--muted)}body.project-status-public.dark .status-tabs button.is-active{color:var(--primary-text);background:var(--primary-soft)}@media(max-width:560px){.public-status-actions{width:100%;justify-content:space-between}}


/* Fullscreen status dashboard */
:fullscreen body.project-status-public,:fullscreen .project-status-public-shell{background:var(--bg)}:fullscreen .project-status-public-shell{width:100%;max-width:none;min-height:100vh;padding:24px 32px}:fullscreen .project-status-page{max-width:none}:fullscreen .public-status-head{position:sticky;top:0;z-index:20;background:var(--bg);padding-top:6px}:fullscreen .status-tabs{position:sticky;top:96px;z-index:19}


/* Rich live-status charts */
.status-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.status-chart-card{min-height:330px}.status-chart-wide{grid-column:1/-1}.status-chart-canvas{min-height:240px;display:grid;place-items:center;overflow:hidden}.status-chart-canvas svg{width:100%;height:auto;max-height:270px;overflow:visible}.chart-bar{fill:var(--primary)}.chart-track{fill:var(--surface-2)}.chart-value{fill:var(--text);font-size:12px;font-weight:700}.chart-label{fill:var(--muted);font-size:10px}.chart-label-left{text-anchor:start}.chart-donut-wrap{display:grid;grid-template-columns:minmax(180px,240px) minmax(120px,1fr);align-items:center;width:100%;gap:10px}.chart-ring-bg{fill:none;stroke:var(--surface-2);stroke-width:26}.chart-ring{fill:none;stroke-width:26;transform:rotate(-90deg);transform-origin:110px 110px}.chart-ring-0,.chart-dot-0{stroke:var(--primary);background:var(--primary)}.chart-ring-1,.chart-dot-1{stroke:#21a179;background:#21a179}.chart-ring-2,.chart-dot-2{stroke:#f59e0b;background:#f59e0b}.chart-ring-3,.chart-dot-3{stroke:#ef5b68;background:#ef5b68}.chart-ring-4,.chart-dot-4{stroke:#3b82f6;background:#3b82f6}.chart-ring-5,.chart-dot-5{stroke:#8b5cf6;background:#8b5cf6}.chart-donut-main{fill:var(--text);font-size:26px;font-weight:700}.chart-donut-sub{fill:var(--muted);font-size:10px}.chart-legend{display:grid;gap:9px}.chart-legend.inline{display:flex;justify-content:center;flex-wrap:wrap;margin-top:6px}.chart-legend span{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:6px}.chart-legend b{color:var(--text)}.chart-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:0 0 auto}.chart-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-line-0{stroke:var(--primary)}.chart-line-1{stroke:#21a179}.chart-line-2{stroke:#f59e0b}@media(max-width:900px){.status-chart-grid{grid-template-columns:1fr}.status-chart-wide{grid-column:auto}.chart-donut-wrap{grid-template-columns:1fr}.chart-legend{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Responsive (tablet y móvil): evitar desbordes horizontales en cabeceras y matrices */
@media(max-width:1100px){
  .topbar{flex-wrap:wrap;height:auto;row-gap:10px;padding-top:10px;padding-bottom:10px}
  .topbar-copy{flex:1 1 220px;min-width:0}
  .topbar-actions{margin-left:0;flex:1 1 100%;justify-content:flex-start}
}
@media(max-width:900px){
  .workload-capacity-row{grid-template-columns:1fr!important}
  .risk-matrix-panel{overflow-x:auto}
  .risk-matrix-grid{min-width:0}
}
@media(max-width:900px){
  .topbar h1{overflow-wrap:anywhere}
}
@media(max-width:1100px){
  .planner-filterbar-topbar{flex:1 1 100%;flex-wrap:wrap;min-width:0}
  .planner-filterbar-topbar .planner-search,.planner-filterbar-compact .planner-search{min-width:0;flex:1 1 180px;max-width:none}
}

/* ===== Personalización: avatares, iconos de plan, badge Pro, fondo ===== */
.pro-badge{display:inline-block;font-style:normal;font-size:9px;font-weight:700;letter-spacing:.08em;line-height:1;padding:3px 6px;border-radius:6px;background:var(--primary);color:#fff;vertical-align:middle;margin-left:4px;position:relative;top:-1px}
.avatar{display:inline-grid;place-items:center;flex:none;border-radius:50%;overflow:hidden;background:var(--primary);color:#fff;font-weight:700;line-height:1;letter-spacing:.02em}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
.user-chip{display:flex;align-items:center;gap:10px;min-height:46px;padding:0 10px;border-radius:12px;color:var(--text)!important;font-weight:600;font-size:13px}
.user-chip:hover{background:var(--surface-2)}
.user-chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.sidebar-collapsed .user-chip-name{display:none}
.plan-icon{display:inline-grid;place-items:center;flex:none;border-radius:11px;color:#fff;font-weight:700;letter-spacing:.02em;overflow:hidden;line-height:1}
.plan-icon.plan-icon-text{background:var(--primary)}
.plan-icon.plan-icon-default{background:var(--primary-soft);color:var(--primary-text)}
.plan-icon img{width:100%;height:100%;object-fit:cover;display:block}

.avatar-editor{display:flex;align-items:flex-end;gap:22px;flex-wrap:wrap}.avatar-form{min-width:260px;flex:1;max-width:420px}.avatar-form .form-actions{margin-top:10px}
.accent-grid{display:flex;gap:12px;flex-wrap:wrap}
.accent-swatch,.bg-swatch{display:grid;gap:8px;justify-items:center;background:var(--surface-2);border:2px solid var(--border);border-radius:14px;padding:10px 12px;color:var(--text);font-size:12px;font-weight:600;cursor:pointer}
.accent-swatch:hover,.bg-swatch:hover{border-color:var(--primary)}
.accent-swatch.is-current,.bg-swatch.is-current{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 25%,transparent)}
.accent-dot{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#fff;font-size:18px}
.bg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:12px}
.bg-preview{display:grid;place-items:center;width:100%;height:64px;border-radius:10px;border:1px solid var(--border);color:#fff;font-size:22px;text-shadow:0 1px 4px rgba(0,0,0,.5)}
.bg-preview-split{position:relative;overflow:hidden;background:var(--bg-l)}
.bg-preview-split::before{content:"";position:absolute;inset:0;background:var(--bg-d);clip-path:polygon(100% 0,100% 100%,0 100%)}
.bg-preview-split>i{position:relative;z-index:1}
.link-button{background:none;border:0;padding:0;color:var(--primary-text);font:inherit;text-decoration:underline;cursor:pointer}
.bg-preview-none{background:var(--surface);color:var(--muted);text-shadow:none}
input[type=range]{width:100%;padding:0;accent-color:var(--primary)}

.hero-panel-single{grid-template-columns:1fr!important}
.template-previews{margin-top:-4px}
.template-preview{padding:12px 14px;border:1px dashed var(--border);border-radius:12px;background:var(--surface-2);display:grid;gap:8px}
.template-preview[hidden]{display:none}
.template-columns{display:flex;flex-wrap:wrap;gap:6px}
.template-columns span{padding:3px 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary-text);font-size:12px;font-weight:600}
.project-table-name{display:flex;align-items:center;gap:10px}.project-table-name>span{display:grid}
.my-day-main{display:flex;flex-direction:column}
.my-day-main .panel-header{margin-bottom:14px}
.my-day-layout{align-items:start}

.topbar-lead{flex:none;display:flex;align-items:center}
.plan-appearance-form{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.plan-appearance-form .panel-header{align-items:flex-start}
.label-like{font-size:12px;font-weight:600;color:var(--muted)}
.plan-color-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.plan-color{position:relative;cursor:pointer}.plan-color input{position:absolute;opacity:0;inset:0;cursor:pointer}
.plan-color span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;color:#fff;font-size:12px;font-weight:700;border:3px solid transparent}
.plan-color input:checked+span{border-color:var(--text)}
.plan-color input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}
.my-day-layout>.panel{margin-top:0}
.my-day-suggestions{top:18px}

/* Efecto cristal (glass): solo cuando el usuario eligió un fondo de imagen */
body.has-bg .app-main{padding-top:14px}
body.has-bg{--glass:color-mix(in srgb,var(--surface) 58%,transparent);--glass-border:rgba(255,255,255,.34);--glass-blur:blur(18px) saturate(1.5)}
body.has-bg.dark{--glass:color-mix(in srgb,var(--surface) 62%,transparent);--glass-border:rgba(255,255,255,.12)}
body.has-bg .app-sidebar,
body.has-bg .topbar,
body.has-bg .hero-card,
body.has-bg .panel,
body.has-bg .stat-card,
body.has-bg .plan-card,
body.has-bg .board-column,
body.has-bg .wiki-content,
body.has-bg .wiki-sidebar,
body.has-bg .automation-rule-card,
body.has-bg .recurring-card,
body.has-bg .inbox-card{background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:0 8px 32px rgba(0,0,0,.14)}
body.has-bg .app-sidebar{border-top:0;border-bottom:0;border-left:0;border-radius:0}
body.has-bg .topbar{border-radius:16px;padding-left:16px;padding-right:16px}
body.has-bg .modal-card{background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}
@supports not (backdrop-filter:blur(1px)){body.has-bg{--glass:color-mix(in srgb,var(--surface) 90%,transparent)}}

/* Cristal ampliado: cualquier caja que usaba --surface / --surface-2 */
body.has-bg :is(.analytics-kpi-grid article,
.automation-rule-card,
.board-column,
.empty-state,
.goal-card,
.hero-card,
.inbox-card,
.inbox-hero-metrics article,
.intake-card,
.my-day-card,
.notification-card,
.overview-kpi-grid article,
.panel,
.people-workload,
.person-card,
.personal-filters a,
.personal-summary article,
.plan-card,
.planner-calendar,
.planner-grid-card,
.portfolio-currency-breakdown article,
.portfolio-summary-grid article,
.pricing-card,
.project-list-row,
.project-overview-hero,
.project-tool-links a,
.recurring-card,
.risk-plan,
.risk-summary-grid article,
.sprint-card,
.stat-card,
.status-hero,
.status-kpis article,
.timeline-shell,
.wiki-content,
.workload-days>div,
.workload-utilization>div){background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-color:var(--glass-border)}
body.has-bg :is(.analytics-definition-grid>div,
.automation-rule-builder-block,
.budget-metrics>div,
.calendar-task,
.custom-field-list>div,
.custom-field-manager form,
.detail-tile,
.history-item,
.intake-field-list>div,
.overview-finance>div,
.overview-time>div,
.overview-workload>div>div,
.public-link-box,
.risk-row,
.status-risk-grid article,
.status-team-grid article,
.subscription-card,
.task-relationship-grid>div,
.template-preview,
.time-entry-item,
.time-summary-grid>div,
.timeline-kpis span,
.wiki-linked-list>div,
.wiki-revision-list>div,
.workload-capacity-row,
.workload-row>div){background:var(--glass-soft);border-color:var(--glass-border)}
body.has-bg{--glass-soft:color-mix(in srgb,var(--surface-2) 45%,transparent)}
body.has-bg .planner-chrome{background:transparent}
body.has-bg .sidebar-footer{background:transparent;border-top-color:var(--glass-border)}
body.has-bg .empty-state,body.has-bg .personal-task-card,body.has-bg .notice{background:var(--glass)}
body.has-bg .personal-task-card.is-complete{background:var(--glass-soft)}
body.has-bg .task-card{background:color-mix(in srgb,var(--surface) 80%,transparent)}

/* Barras de desplazamiento con el color de acento del usuario (mismo estilo que la del menú lateral) */
:root{--scroll-thumb:color-mix(in srgb,var(--primary) 55%,transparent)}
body.dark{--scroll-thumb:color-mix(in srgb,var(--primary-text) 45%,transparent)}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:20px;border:2px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-track,*::-webkit-scrollbar-corner{background:transparent}
*::-webkit-scrollbar-button{display:none;width:0;height:0}
/* Con fondo: el thumb se aclara y se tiñe con el acento para verse sobre cualquier imagen */
body.has-bg{--scroll-thumb:color-mix(in srgb,var(--primary) 55%,rgba(255,255,255,.45))}
body.has-bg.dark{--scroll-thumb:color-mix(in srgb,var(--primary) 50%,rgba(255,255,255,.35))}
/* La barra de la página pertenece a <html>, que no hereda las variables de <body> */
html:has(body.dark){--scroll-thumb:color-mix(in srgb,var(--primary-text) 45%,transparent)}
html:has(body.has-bg){--scroll-thumb:color-mix(in srgb,var(--primary) 55%,rgba(255,255,255,.4))}
html:has(body.has-bg.dark){--scroll-thumb:color-mix(in srgb,var(--primary) 50%,rgba(255,255,255,.35))}
@supports not selector(::-webkit-scrollbar){
  html,html *{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}
}

/* Avisos con colores del tema (antes quedaban claros en modo oscuro) */
body.dark .form-error{background:color-mix(in srgb,#ff5d7a 16%,var(--surface));color:#ff9aae;border:1px solid color-mix(in srgb,#ff5d7a 35%,transparent)}
body.dark .form-success{background:color-mix(in srgb,#2fd39a 14%,var(--surface));color:#6fe6bd;border:1px solid color-mix(in srgb,#2fd39a 32%,transparent)}
body.has-bg .form-error,body.has-bg .form-success{-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}
body.has-bg:not(.dark) .form-error{background:color-mix(in srgb,#fff0f2 80%,transparent)}
body.has-bg:not(.dark) .form-success{background:color-mix(in srgb,#eaf8f3 80%,transparent)}

/* Modo oscuro con fondo: los bloques de acento pasan a cristal teñido para que no sobresalgan */
body.dark.has-bg .my-day-hero,
body.dark.has-bg .hero-side{background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 42%,transparent),color-mix(in srgb,var(--primary) 18%,transparent));-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid color-mix(in srgb,var(--primary) 45%,transparent);box-shadow:0 8px 32px rgba(0,0,0,.14)}

/* Board: más aire y columnas más anchas con menos separación */
.planner-board{grid-auto-columns:minmax(300px,440px);gap:14px}
body.has-bg .planner-board .board-column{padding:12px 12px 14px;border-radius:16px}
body.has-bg .planner-board .column-heading{padding:6px 8px 12px}
body.has-bg .planner-board .column-add{margin:0 0 12px;padding:0 10px}
body.has-bg .planner-board .task-list{gap:12px;padding:0}
body.has-bg .planner-board .board-column-add{padding:0}
body.dark.has-bg .planner-board .task-card{background:color-mix(in srgb,#2a2b2d 70%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}

/* ===== Teléfono: experiencia de app nativa + Liquid Glass (el diseño de escritorio no cambia) ===== */
.mobile-tabbar{display:none}
@media(max-width:760px){
  html{background:var(--bg);-webkit-text-size-adjust:100%;overscroll-behavior-y:none}
  body{min-height:100dvh;overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;
    --lg-fill:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,.08) 55%,rgba(255,255,255,.16));
    --lg-bg:color-mix(in srgb,var(--surface) 42%,transparent);
    --lg-border:rgba(255,255,255,.34);
    --lg-shadow:inset 0 1px 0 rgba(255,255,255,.65),inset 0 -1px 0 rgba(255,255,255,.14),inset 0 0 22px rgba(255,255,255,.10),0 12px 34px rgba(8,10,28,.30);
    --lg-blur:blur(26px) saturate(1.9) brightness(1.06)}
  body.dark{--lg-fill:linear-gradient(180deg,rgba(255,255,255,.20),rgba(255,255,255,.04) 55%,rgba(255,255,255,.09));--lg-bg:color-mix(in srgb,var(--surface) 56%,transparent);--lg-border:rgba(255,255,255,.18);--lg-shadow:inset 0 1px 0 rgba(255,255,255,.34),inset 0 -1px 0 rgba(255,255,255,.07),inset 0 0 22px rgba(255,255,255,.05),0 12px 34px rgba(0,0,0,.50)}
  a,button,.task-card{touch-action:manipulation}
  input,select,textarea{font-size:16px}

  /* contenido a pantalla completa respetando muescas y barra inferior */
  .app-main{padding:calc(env(safe-area-inset-top) + 8px) max(14px,env(safe-area-inset-left)) calc(104px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-right))}
  body.board-view-fixed,body.board-view-fixed .app-main{height:100dvh}
  body.board-view-fixed .app-main{padding-bottom:calc(92px + env(safe-area-inset-bottom))}

  /* barra superior: una sola fila, cristal flotante */
  .mobile-menu{display:none}
  .topbar{position:sticky;top:calc(env(safe-area-inset-top) + 6px);z-index:40;gap:8px;margin:0 0 14px;padding:8px 8px 8px 16px;border-radius:26px;background:var(--lg-fill),var(--lg-bg);-webkit-backdrop-filter:var(--lg-blur);backdrop-filter:var(--lg-blur);border:1px solid var(--lg-border);box-shadow:var(--lg-shadow)}
  .topbar-copy{flex:1 1 auto;min-width:0}
  .topbar-copy h1{font-size:19px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .topbar-copy p{display:none}
  .topbar-center{order:5;flex:1 1 100%;justify-content:flex-start;margin-top:4px}
  .topbar-center .planner-filterbar{width:100%;margin:0;flex-wrap:wrap}
  .topbar-center .planner-search{min-width:100%;max-width:none}
  .topbar-center .planner-filterbar select,.topbar-center .planner-filterbar>*{flex:1 1 140px}
  .topbar{flex-wrap:wrap}
  .topbar-actions{flex:none;gap:6px}
  .topbar-actions .icon-button,.topbar-actions .command-trigger,.topbar-actions .button{border-radius:20px}

  /* barra inferior Liquid Glass */
  .mobile-tabbar{display:flex;position:fixed;z-index:60;left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));bottom:calc(10px + env(safe-area-inset-bottom));height:68px;padding:6px;gap:2px;border-radius:34px;background:var(--lg-fill),var(--lg-bg);-webkit-backdrop-filter:var(--lg-blur);backdrop-filter:var(--lg-blur);border:1px solid var(--lg-border);box-shadow:var(--lg-shadow);overflow:hidden}
  .mobile-tabbar::before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(120% 90% at 18% -20%,rgba(255,255,255,.38),transparent 55%),radial-gradient(90% 70% at 90% 130%,rgba(255,255,255,.14),transparent 60%)}
  .mobile-tab{position:relative;flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:10.5px;font-weight:600;border-radius:28px;padding:0;transition:transform .18s cubic-bezier(.3,1.4,.5,1),background .2s ease,color .2s ease}
  .mobile-tab i{font-size:23px;line-height:1}
  .mobile-tab span{line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mobile-tab:active{transform:scale(.9)}
  .mobile-tab.is-active{color:var(--primary-text);background:linear-gradient(180deg,rgba(255,255,255,.32),rgba(255,255,255,.08));box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 -1px 0 rgba(255,255,255,.12),0 2px 10px rgba(0,0,0,.14)}
  body.dark .mobile-tab.is-active{background:linear-gradient(180deg,rgba(255,255,255,.20),rgba(255,255,255,.05))}
  body.sidebar-open .mobile-tabbar{opacity:0;pointer-events:none}

  /* menú "Más": panel de cristal */
  .app-sidebar{width:min(84vw,330px);padding:calc(env(safe-area-inset-top) + 18px) 14px calc(24px + env(safe-area-inset-bottom));border-radius:0 30px 30px 0;background:var(--lg-fill),color-mix(in srgb,var(--surface) 62%,transparent);-webkit-backdrop-filter:var(--lg-blur);backdrop-filter:var(--lg-blur);border:1px solid var(--lg-border);border-left:0;box-shadow:var(--lg-shadow)}
  .app-sidebar.is-open{box-shadow:var(--lg-shadow),24px 0 60px rgba(0,0,0,.35)}
  .sidebar-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
  body.has-bg .app-sidebar{border-radius:0 30px 30px 0}

  /* ventanas como hojas inferiores */
  .modal{align-items:end;padding:0}
  .modal-card{width:100%;max-width:none;max-height:92dvh;border-radius:30px 30px 0 0;padding:20px 18px calc(22px + env(safe-area-inset-bottom));background:var(--lg-fill),color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:var(--lg-blur);backdrop-filter:var(--lg-blur);border:1px solid var(--lg-border);border-bottom:0;box-shadow:var(--lg-shadow)}
  .modal-card::before{content:"";display:block;width:38px;height:5px;border-radius:5px;background:var(--border);margin:-8px auto 14px}
  .toast-region{left:14px;right:14px;bottom:calc(92px + env(safe-area-inset-bottom))}

  /* cristal en tarjetas cuando hay fondo de imagen */
  body.has-bg .panel,body.has-bg .stat-card,body.has-bg .hero-card,body.has-bg .plan-card{border-radius:24px}
}
/* App instalada en la pantalla de inicio: la barra de estado queda bajo el contenido */
@media(max-width:760px){html.is-standalone body{padding-top:0}html.is-standalone .topbar{top:calc(env(safe-area-inset-top) + 4px)}}

/* Animación de carga (esta build de Boxicons no incluye .bx-spin) */
@keyframes mp-spin{to{transform:rotate(360deg)}}
.bx-spin{display:inline-block;animation:mp-spin 1s linear infinite}

/* Tablet (761–1100 px): la barra de herramientas del tablero ocupa su propia fila */
@media(min-width:761px) and (max-width:1500px){
  .topbar{flex-wrap:wrap;padding-top:12px}
  .topbar-center{order:5;flex:1 1 100%;justify-content:flex-start}
  .topbar-center .planner-filterbar{width:100%;margin:0}
  .topbar-copy{flex:1 1 200px}
}

/* Teléfono: ajustes de composición */
@media(max-width:760px){
  .subscription-card{flex-wrap:wrap}
  .subscription-card .grow{flex:1 1 180px}
  .subscription-card form,.subscription-card>.button{flex:1 1 100%}
  .subscription-card form .button{width:100%}
  .inbox-hero-metrics{grid-template-columns:repeat(3,1fr)!important;gap:8px}
  .inbox-hero-metrics article{padding:10px}
  .inbox-card .priority{font-size:11px;padding:2px 8px}
  .inbox-card h3{font-size:14px}
  .topbar-actions a[href="dashboard.php"].button{display:none}
}
.planner-search input{padding-left:36px!important}
@media(max-width:760px){.topbar-copy{flex:1 1 0;min-width:0}}
@media(max-width:760px){.topbar:has(.topbar-center) .command-trigger{display:none}}

/* Teléfono: tarjetas de métricas en 2 columnas y estados vacíos más compactos */
@media(max-width:760px){
  .stats-grid,.overview-kpi-grid,.analytics-kpi-grid,.portfolio-summary-grid,.status-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}
  .stat-card,.overview-kpi-grid article,.analytics-kpi-grid article,.portfolio-summary-grid article,.status-kpis article{padding:12px;gap:10px}
  .stat-card .stat-icon,.overview-kpi-grid article>i,.portfolio-summary-grid article>i{width:36px;height:36px}
  .stat-card strong,.overview-kpi-grid strong{font-size:20px}
  .empty-state{min-height:0;padding:26px 18px}
  .empty-state h3{font-size:15px}
}

/* Teléfono: objetivos táctiles mínimos (≈ 44 px) */
@media(max-width:760px){
  .button,.icon-button,.topbar-actions .button{min-width:44px}
  .column-menu-button{width:40px;height:40px}
  .inbox-card-actions form button,.inbox-snooze button,.inbox-card .button-small,.inbox-card-actions button{min-height:40px}
}
@media(max-width:760px){.personal-task-card a:not(.button):not(.icon-button),.inbox-card a:not(.button):not(.icon-button){display:inline-block;padding:12px 0}}

/* Calendario global (vista Mes + Agenda) */
.calendar-modes{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--border);border-radius:12px;background:var(--surface);margin:0 0 14px}
.calendar-modes a{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border-radius:9px;color:var(--muted);font-weight:600;font-size:12px}
.calendar-modes a.is-active{background:var(--primary-soft);color:var(--primary-text)}
.global-calendar a.calendar-day{display:block;color:inherit;text-decoration:none;cursor:pointer}
.global-calendar .calendar-events{display:grid;gap:3px;margin-top:4px}
.global-calendar .calendar-task{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;pointer-events:none}
.global-calendar .calendar-task.is-done{opacity:.55;text-decoration:line-through}
.calendar-more{font-size:10px;color:var(--muted);font-weight:600}
.global-calendar a.calendar-day:hover{background:var(--primary-soft)}
.global-calendar a.calendar-day.is-selected{outline:2px solid var(--primary);outline-offset:-2px;background:var(--primary-soft)}
.calendar-day-list{margin-top:16px}
.calendar-day-task{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:center;padding:12px 4px;border-top:1px solid var(--border);color:var(--text)}
.calendar-day-task:first-of-type{border-top:0}
.calendar-day-task-title{font-weight:600}
.calendar-day-task small{color:var(--muted);grid-column:1}
.calendar-day-task .status-badge{grid-column:2;grid-row:1/3}
.calendar-agenda-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 20px;border-bottom:1px solid var(--border);color:var(--text)}
.calendar-agenda-row:last-child{border-bottom:0}
.calendar-agenda-row p{color:var(--muted);font-size:12px}
.calendar-agenda-date{text-align:center}.calendar-agenda-date strong{display:block;font-size:20px}.calendar-agenda-date small{color:var(--muted)}
.calendar-agenda-badges{display:flex;gap:8px;align-items:center}
@media(max-width:760px){
  .calendar-agenda-row{grid-template-columns:48px minmax(0,1fr);padding:12px 14px}.calendar-agenda-badges{grid-column:2}
  .global-calendar .calendar-day{min-height:58px;padding:4px;text-align:center}
  .global-calendar .calendar-events{display:flex;flex-wrap:wrap;justify-content:center;gap:3px}
  .global-calendar .calendar-task{width:7px;height:7px;min-height:0;padding:0;border-radius:50%;font-size:0;overflow:hidden}
  .global-calendar .calendar-more{display:none}
  .calendar-weekdays span{padding:7px 0}
}
@media(max-width:760px){
  .global-calendar .calendar-task{border:0;background:var(--primary)}
  .global-calendar .calendar-task.priority-alta{background:var(--danger)}
  .global-calendar .calendar-task.priority-media{background:var(--warning)}
  .global-calendar .calendar-task.priority-baja{background:var(--success)}
}

.switch-row{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);cursor:pointer}
.switch-row input{width:22px;height:22px;margin-top:2px;accent-color:var(--primary);flex:none}
.switch-row strong{display:block}.switch-row small{display:block;color:var(--muted);font-size:12px;margin-top:2px}

.password-field{position:relative;display:block}
.password-field input{padding-right:46px!important;width:100%}
.password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;border-radius:10px;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer;font-size:20px}
.password-toggle:hover{color:var(--text);background:var(--surface-2)}
@media(max-width:760px){.hero-card h2{font-size:22px;line-height:1.25}}

/* Admin en teléfono: navegación horizontal, sin desbordes; las tablas se desplazan dentro de su caja */
@media(max-width:760px){
  .admin-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
  .admin-main{min-width:0;padding:16px 14px calc(24px + env(safe-area-inset-bottom))}
  .admin-nav{display:flex;align-items:center;gap:6px;overflow-x:auto;padding:calc(env(safe-area-inset-top) + 10px) 12px 10px;position:sticky;top:0;z-index:30;scrollbar-width:none}
  .admin-nav::-webkit-scrollbar{display:none}
  .admin-nav .admin-brand{margin:0 8px 0 0;font-size:15px;white-space:nowrap;flex:none}
  .admin-nav>a:not(.admin-brand){flex:none;margin:0;padding:9px 12px;white-space:nowrap;min-height:40px}
  .admin-nav hr{display:none}
  .admin-head{flex-wrap:wrap}
  .admin-head h1{font-size:22px}
  .admin-panel{padding:14px;min-width:0}
  .admin-table-wrap{max-width:100%}
  .admin-filter{flex-wrap:wrap;max-width:none}
  .admin-filter select{max-width:none;flex:1 1 140px}
}

.verify-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;margin:10px 0 0;border:1px solid color-mix(in srgb,var(--warning) 45%,var(--border));border-radius:14px;background:color-mix(in srgb,var(--warning) 12%,var(--surface));font-size:12px}
.verify-banner i{font-size:18px;color:var(--warning)}.verify-banner span{flex:1 1 200px}.verify-banner form{margin:0}

/* Logotipo PD */
.brand-mark{font-weight:800;font-size:16px;letter-spacing:-.06em;line-height:1}
body.sidebar-collapsed .brand-mark{font-size:15px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.plan-compare-wrap{overflow-x:auto}
.plan-compare{width:100%;border-collapse:collapse;font-size:14px}
.plan-compare th,.plan-compare td{padding:10px 8px;text-align:center;border-top:1px solid var(--line,rgba(128,128,128,.25))}
.plan-compare thead th{border-top:0}
.plan-compare th[scope=row]{text-align:left;font-weight:500}
.plan-compare .pc-group th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-top:0;padding-top:18px}
.pc-yes{color:#22a06b;font-weight:700}.pc-no{color:var(--muted)}
.billing-card{margin-bottom:6px}
.billing-badge{display:inline-block;margin-left:6px;padding:1px 9px;border-radius:999px;font-size:11px;font-weight:700;vertical-align:1px;background:var(--primary-soft);color:var(--primary-text)}
.billing-badge.is-ok{background:#eaf8f3;color:#11795a}.billing-badge.is-warn{background:#fff4e0;color:#8a5a00}.billing-badge.is-danger{background:#fff0f2;color:#b52b46}.billing-badge.is-muted{background:var(--surface-2);color:var(--muted)}
.billing-notice{padding:12px 14px;border-radius:11px;margin:0 0 14px;font-size:13px;line-height:1.5;background:var(--primary-soft);color:var(--text)}
.billing-notice.is-warn{background:#fff4e0;color:#6b4500}.billing-notice.is-danger{background:#fff0f2;color:#b52b46}
.billing-progress{height:6px;border-radius:99px;background:var(--surface-3,rgba(128,128,128,.2));overflow:hidden;margin-top:8px}.billing-progress i{display:block;height:100%;border-radius:99px;background:var(--primary)}.billing-progress i.is-over{background:#d1465d}
.billing-details{margin:14px 0 0;display:grid;gap:0}.billing-details div{display:flex;justify-content:space-between;gap:16px;padding:10px 2px;border-top:1px solid var(--line,rgba(128,128,128,.2));font-size:13px}.billing-details dt{color:var(--muted)}.billing-details dd{margin:0;font-weight:600;text-align:right}
.billing-subtitle{margin:20px 0 8px;font-size:14px}
.billing-usage{list-style:none;margin:0;padding:0;display:grid;gap:12px}.billing-usage li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;font-size:13px}.billing-usage .billing-progress{grid-column:1/-1}.billing-usage strong.is-over{color:#d1465d}
.billing-hint{margin:14px 0 0;font-size:12px;color:var(--muted);line-height:1.55}
body.dark .billing-badge.is-ok{background:rgba(34,160,107,.18);color:#6fe0b0}body.dark .billing-badge.is-warn{background:rgba(255,170,40,.16);color:#ffcf7a}body.dark .billing-badge.is-danger{background:rgba(209,70,93,.2);color:#ff9fb0}
body.dark .billing-notice.is-warn{background:rgba(255,170,40,.14);color:#ffd99a}body.dark .billing-notice.is-danger{background:rgba(209,70,93,.18);color:#ffb3c0}
@media(max-width:600px){.billing-details div{flex-direction:column;gap:2px}.billing-details dd{text-align:left}}
