:root{--bg:#0a0a0f;--bg-card:#12121a;--bg-hover:#1a1a26;--border:#2a2a3a;--text:#e8e8f0;--text-muted:#8888a0;--brand:#8b2fc9;--brand-dim:#6b1fa8;--brand-green:#b8e63e;--green:#4ade80;--orange:#fb923c;--blue:#60a5fa;--purple:#a78bfa;--red:#f87171;--radius:12px;--shadow:0 4px 24px #0006}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:DM Sans,system-ui,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit}.login-page{justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative}.login-bg{background:radial-gradient(ellipse at 20% 50%, #8b2fc91f 0%, transparent 50%), radial-gradient(ellipse at 80% 20%, #b8e63e14 0%, transparent 50%), var(--bg);position:absolute;inset:0}.login-card{background:var(--bg-card);border:1px solid var(--border);width:100%;max-width:480px;box-shadow:var(--shadow);border-radius:20px;padding:3rem;position:relative}.login-brand{text-align:center;margin-bottom:2rem}.login-brand p{color:var(--text-muted);margin-top:1rem;font-size:.95rem}.brand-logo-full{width:100%;max-width:240px;height:auto;margin:0 auto;display:block}.brand-logo-compact{align-items:center;gap:.75rem;display:flex}.brand-logo-icon{object-fit:contain;flex-shrink:0;width:42px;height:42px}.brand-logo-compact strong{color:var(--text);font-size:.95rem;line-height:1.2;display:block}.brand-logo-compact span{color:var(--brand-green);font-size:.72rem}.login-subtitle{text-align:center;color:var(--text-muted);margin-bottom:1.5rem;font-size:.9rem}.login-options{flex-direction:column;gap:1rem;display:flex}.login-option{background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;text-align:left;align-items:center;gap:1rem;padding:1.25rem;transition:all .2s;display:flex}.login-option:hover{border-color:var(--brand);background:#8b2fc914}.login-option strong{font-size:1rem;display:block}.login-option span{color:var(--text-muted);font-size:.85rem}.login-note{text-align:center;color:var(--text-muted);margin-top:1.5rem;font-size:.8rem}.login-form{flex-direction:column;gap:1rem;display:flex}.login-form label{color:var(--text-muted);flex-direction:column;gap:.4rem;font-size:.85rem;display:flex}.login-form input{background:var(--bg-hover);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.75rem .9rem;font-size:1rem}.login-form input:focus{border-color:var(--brand);outline:none}.login-error{color:var(--red);text-align:center;font-size:.9rem}.login-submit{justify-content:center;width:100%;margin-top:.5rem;padding:.85rem}.form-success{color:var(--green);margin-bottom:1rem}.form-hint{color:var(--text-muted);margin-bottom:1rem;font-size:.9rem}.app-layout{min-height:100vh;display:flex}.sidebar{background:var(--bg-card);border-right:1px solid var(--border);flex-direction:column;width:260px;padding:1.5rem;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-brand{border-bottom:1px solid var(--border);margin-bottom:2rem;padding-bottom:1.5rem}.sidebar-nav{flex-direction:column;flex:1;gap:.25rem;display:flex}.nav-link{color:var(--text-muted);border-radius:8px;padding:.75rem 1rem;font-weight:500;transition:all .2s}.nav-link:hover,.nav-link.active{color:var(--brand);background:#8b2fc91f}.sidebar-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding-top:1rem;display:flex}.user-info{align-items:center;gap:.75rem;display:flex}.user-avatar{background:linear-gradient(135deg, var(--brand), var(--brand-green));width:36px;height:36px;color:var(--bg);border-radius:50%;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex}.user-info strong{font-size:.85rem;display:block}.user-info span{color:var(--text-muted);font-size:.75rem}.btn-icon{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.5rem;transition:all .2s}.btn-icon:hover{background:var(--bg-hover);color:var(--text)}.main-content{flex:1;margin-left:260px;padding:2rem}.page-header h1{margin-bottom:2rem;font-size:1.75rem;font-weight:700}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.card h2{margin-bottom:1rem;font-size:1.1rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:1rem;padding:1.25rem;display:flex}.stat-gold{color:var(--brand)}.stat-green{color:var(--green)}.stat-orange{color:var(--orange)}.stat-blue{color:var(--blue)}.stat-value{color:var(--text);font-size:1.75rem;font-weight:700;display:block}.stat-label{color:var(--text-muted);font-size:.85rem}.grid-2{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem;display:grid}.badge{text-transform:capitalize;border-radius:20px;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-borrador{color:var(--text-muted);background:#8888a033}.badge-en_revision{color:var(--orange);background:#fb923c26}.badge-aprobado{color:var(--blue);background:#60a5fa26}.badge-entregado{color:var(--green);background:#4ade8026}.badge-type{color:var(--brand);background:#8b2fc91f}.badge-video{color:var(--purple);background:#a78bfa26}.badge-podcast{color:var(--blue);background:#60a5fa26}.badge-imagen{color:var(--green);background:#4ade8026}.badge-diseno{color:var(--orange);background:#fb923c26}.badge-agenda{font-size:.7rem}.badge-agenda-grabacion{color:var(--purple);background:#a78bfa26}.badge-agenda-revision{color:var(--orange);background:#fb923c26}.badge-agenda-entrega{color:var(--green);background:#4ade8026}.badge-agenda-reunion{color:var(--blue);background:#60a5fa26}.badge-solicitud-pendiente{color:var(--orange);background:#fb923c26}.badge-solicitud-aprobada{color:var(--green);background:#4ade8026}.badge-solicitud-rechazada{color:var(--red);background:#f8717126}.badge-solicitud-completada{color:var(--blue);background:#60a5fa26}.badge-contrato-pendiente{color:var(--orange);background:#fb923c26}.badge-contrato-pagado{color:var(--green);background:#4ade8026}.badge-contrato-cancelado{color:var(--red);background:#f8717126}.badge-contrato-vencido{color:var(--text-muted);background:#8888a033}.badge-drive{color:#8ab4f8;background:#4285f426}.source-toggle{gap:.5rem;margin:.5rem 0 .75rem;display:flex}.source-toggle button{border:1px solid var(--border);background:var(--bg-hover);color:var(--text-muted);font:inherit;cursor:pointer;border-radius:8px;align-items:center;gap:.35rem;padding:.45rem .75rem;font-size:.85rem;display:inline-flex}.source-toggle button.active{border-color:var(--brand);color:var(--text);background:#8b2fc926}.drive-link-field{flex-direction:column;gap:.4rem;display:flex}.drive-preview{flex-direction:column;gap:.75rem;display:flex}.drive-preview iframe{border-radius:var(--radius);background:#000;border:0;width:100%;min-height:420px}.drive-open-btn{align-self:flex-start}.section-title{margin:1.5rem 0 1rem;font-size:1.1rem}.contracts-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.contract-card{flex-direction:column;gap:.75rem;display:flex}.contract-card h3{margin:0;font-size:1.05rem}.contract-card p{color:var(--text-muted);margin:0;font-size:.9rem}.contract-card-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.contract-amount{color:var(--brand-green);font-size:1.15rem}.contract-meta{color:var(--text-muted);flex-wrap:wrap;gap:.75rem;font-size:.8rem;display:flex}.contract-card .btn-primary{justify-content:center;margin-top:auto}.row-actions{flex-wrap:wrap;gap:.4rem;display:flex}.row-actions .btn-primary,.row-actions .btn-secondary{padding:.35rem .65rem;font-size:.8rem}.modal-backdrop{z-index:1100;background:#000000a6;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-card{width:min(420px,100%);padding:1.25rem}.modal-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.35rem;display:flex}.modal-head h2{margin:0;font-size:1.1rem}.modal-subtitle{color:var(--text-muted);margin:0 0 1rem;font-size:.9rem}.payment-methods{flex-direction:column;gap:.6rem;display:flex}.payment-method-btn{border:1px solid var(--border);background:var(--bg-hover);width:100%;color:var(--text);font:inherit;cursor:pointer;text-align:left;border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;padding:.9rem 1rem;display:flex}.payment-method-btn:hover:not(:disabled){border-color:var(--brand)}.payment-method-btn:disabled{opacity:.7;cursor:wait}.payment-method-label{font-weight:600}.payment-method-hint{color:var(--text-muted);font-size:.8rem}.badge-row{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.agenda-list{flex-direction:column;gap:1rem;display:flex}.agenda-item{border-bottom:1px solid var(--border);gap:1rem;padding:.75rem 0;display:flex}.agenda-item:last-child{border-bottom:none}.agenda-date{text-align:center;min-width:50px}.agenda-date .day{color:var(--brand);font-size:1.5rem;font-weight:700;display:block}.agenda-date .month{color:var(--text-muted);font-size:.75rem}.agenda-info strong{margin-bottom:.25rem;display:block}.agenda-info p{color:var(--text-muted);margin-top:.25rem;font-size:.85rem}.agenda-timeline{padding-left:2rem;position:relative}.timeline-item{margin-bottom:1.5rem;position:relative}.timeline-marker{background:var(--brand);border:2px solid var(--bg);width:12px;height:12px;box-shadow:0 0 0 2px var(--brand);border-radius:50%;position:absolute;top:1.5rem;left:-2rem}.timeline-item:before{content:"";background:var(--border);width:2px;position:absolute;top:2rem;bottom:-1.5rem;left:calc(5px - 2rem)}.timeline-item:last-child:before{display:none}.timeline-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.timeline-date{color:var(--text-muted);text-transform:capitalize;font-size:.85rem}.timeline-client{color:var(--brand-green);margin:.25rem 0;font-size:.9rem}.timeline-notes{color:var(--text-muted);font-size:.85rem}.clients-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;display:grid}.client-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);gap:1rem;padding:1.5rem;transition:border-color .2s;display:flex}.client-card:hover{border-color:var(--brand)}.client-avatar{background:linear-gradient(135deg, var(--brand), var(--brand-green));width:56px;height:56px;color:var(--bg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;display:flex}.client-info h3{margin-bottom:.25rem;font-size:1.1rem}.client-name{color:var(--text-muted);font-size:.9rem}.client-contact{color:var(--text-muted);flex-direction:column;gap:.25rem;margin-top:.75rem;font-size:.8rem;display:flex}.client-contact span{align-items:center;gap:.4rem;display:flex}.client-status{border-radius:20px;margin-top:.75rem;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}.client-status.active{color:var(--green);background:#4ade8026}.table-wrapper{padding:0;overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:1rem 1.25rem}.data-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.8rem;font-weight:600}.data-table td strong{display:block}.data-table td small{color:var(--text-muted);font-size:.8rem}.access-mode{color:var(--text-muted);align-items:center;gap:.3rem;font-size:.85rem;display:flex}.status-select{background:var(--bg-hover);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:.4rem .6rem;font-size:.8rem}.toolbar{gap:1rem;margin-bottom:1.5rem;display:flex}.toolbar select{background:var(--bg-card);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.6rem 1rem}.btn-primary{background:var(--brand);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.7rem 1.25rem;font-weight:600;transition:background .2s;display:inline-flex}.btn-primary:hover{background:var(--brand-dim)}.btn-secondary{background:var(--bg-hover);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:.7rem 1.25rem}.delivery-form{margin-bottom:2rem}.form-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-grid label{color:var(--text-muted);flex-direction:column;gap:.4rem;font-size:.85rem;display:flex}.form-grid label.full{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{background:var(--bg-hover);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.6rem .8rem}.form-grid textarea{resize:vertical;min-height:80px}.form-actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.portal-welcome{color:var(--text-muted);margin-bottom:2rem}.portal-hero{border-radius:var(--radius);border:1px solid var(--border);background:radial-gradient(ellipse at top left, #8b2fc938, transparent 55%), radial-gradient(ellipse at bottom right, #b8e63e14, transparent 50%), var(--bg-card);margin-bottom:2rem;padding:1.75rem 1.5rem}.portal-hero-kicker{color:var(--brand-green);letter-spacing:.04em;text-transform:uppercase;margin-bottom:.5rem;font-size:.8rem}.portal-hero-title{margin:0 0 .6rem;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.15}.portal-hero-text{max-width:42rem;color:var(--text-muted);margin:0;line-height:1.55}.portal-actions{margin-bottom:2rem}.portal-actions-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.85rem;display:grid}.portal-action-card{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card);color:inherit;grid-template-columns:auto 1fr auto;align-items:start;gap:.85rem;padding:1rem;text-decoration:none;transition:border-color .15s,background .15s;display:grid}.portal-action-card:hover{border-color:var(--brand);background:var(--bg-hover)}.portal-action-icon{width:40px;height:40px;color:var(--brand-green);background:#8b2fc929;border-radius:10px;place-items:center;display:grid}.portal-action-body h3{margin:0 0 .3rem;font-size:.98rem}.portal-action-body p{color:var(--text-muted);margin:0;font-size:.85rem;line-height:1.45}.portal-action-arrow{color:var(--text-muted);margin-top:.35rem}.portal-section-head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.25rem;display:flex}.portal-section-head .section-title{margin-top:0}.portal-count{color:var(--text-muted);font-size:.85rem}.portal-count-link{color:var(--brand-green);font-size:.85rem;text-decoration:none}.portal-count-link:hover{text-decoration:underline}.content-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.5rem;display:grid}.content-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;transition:all .2s;display:flex;overflow:hidden}.content-card:hover{border-color:var(--brand);box-shadow:var(--shadow);transform:translateY(-2px)}.content-thumb{justify-content:center;align-items:center;height:160px;display:flex}.content-thumb-video{color:var(--purple);background:linear-gradient(135deg,#1a1030,#2d1f4e)}.content-thumb-podcast{color:var(--blue);background:linear-gradient(135deg,#0f1a30,#1e3a5f)}.content-thumb-imagen{color:var(--green);background:linear-gradient(135deg,#0f2018,#1a3d2e)}.content-thumb-diseno{color:var(--orange);background:linear-gradient(135deg,#2a1a0f,#4a3020)}.content-info{padding:1.25rem}.content-info h3{margin-bottom:.5rem;font-size:1rem}.content-info p{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.85rem;display:-webkit-box;overflow:hidden}.content-meta{color:var(--text-muted);justify-content:space-between;margin-top:.75rem;font-size:.8rem;display:flex}.access-hint{align-items:center;gap:.3rem;display:flex}.back-link{color:var(--text-muted);align-items:center;gap:.4rem;margin-bottom:1.5rem;font-size:.9rem;transition:color .2s;display:inline-flex}.back-link:hover{color:var(--brand)}.detail-grid{grid-template-columns:1fr 320px;gap:1.5rem;display:grid}.video-player video{border-radius:var(--radius);background:#000;width:100%}.audio-player audio{width:100%}.image-preview img{object-fit:contain;border-radius:var(--radius);background:#000;width:100%;max-height:70vh}.placeholder-media{min-height:300px;color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1.5rem;display:flex}.detail-info h2{margin:.75rem 0}.detail-desc{color:var(--text-muted);margin-bottom:1rem}.detail-dates{color:var(--text-muted);gap:1.5rem;margin-bottom:1.5rem;font-size:.85rem;display:flex}.detail-actions{border-top:1px solid var(--border);padding-top:1rem}.view-only-notice{color:var(--orange);align-items:center;gap:.5rem;font-size:.9rem;display:inline-flex}.recommendation-card .rec-header{color:var(--brand-green);align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.recommendation-card p{color:var(--text-muted);font-size:.9rem;line-height:1.7}.access-card h3{margin-bottom:.5rem;font-size:.95rem}.access-card p{color:var(--text-muted);font-size:.85rem}.detail-sidebar{flex-direction:column;gap:1rem;display:flex}.material-list{flex-direction:column;gap:.75rem;display:flex}.material-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.75rem 0;display:flex}.material-row:last-child{border-bottom:none}.material-row .date{color:var(--text-muted);font-size:.8rem}.loading{text-align:center;color:var(--text-muted);padding:3rem}.empty-state{text-align:center;color:var(--text-muted);padding:2rem;font-size:.95rem}.section-gap{margin-bottom:1.5rem}.text-muted{color:var(--text-muted)}.timeline-actions{align-items:center;gap:.5rem;display:flex}.btn-icon.danger{color:var(--red)}.btn-icon.danger:hover{background:#f871711a}.client-status{border:none;border-radius:20px;padding:.2rem .6rem;font-family:inherit;font-size:.75rem;font-weight:600;display:inline-block}.card-actions{justify-content:space-between;align-items:center;margin-top:.75rem;display:flex}.file-upload{flex-direction:column;gap:.5rem;display:flex}.file-upload input[type=file]{background:var(--bg-hover);border:1px dashed var(--border);color:var(--text-muted);cursor:pointer;border-radius:8px;padding:.75rem}.file-upload input[type=file]:hover{border-color:var(--brand)}.file-name,.file-hint{color:var(--text-muted);align-items:center;gap:.4rem;font-size:.85rem;display:flex}.file-name{color:var(--brand-green)}.optional{color:var(--text-muted);font-size:.75rem;font-weight:400}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}.upload-panel{background:var(--bg-card);border:1px solid var(--border);z-index:1000;border-radius:12px;width:min(380px,100vw - 2rem);position:fixed;bottom:1.5rem;right:1.5rem;overflow:hidden;box-shadow:0 12px 40px #0000002e}.upload-panel.collapsed .upload-panel-list{display:none}.upload-panel-header{cursor:pointer;width:100%;color:var(--text);font:inherit;background:linear-gradient(135deg,#8b2fc91f,#b8e63e14);border:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1rem;display:flex}.upload-panel-title{align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;display:flex}.upload-panel-actions{color:var(--text-muted);align-items:center;gap:.5rem;display:flex}.upload-panel-clear{color:var(--brand);cursor:pointer;background:0 0;border:none;padding:.2rem .4rem;font-size:.8rem}.upload-panel-list{max-height:320px;margin:0;padding:0;list-style:none;overflow-y:auto}.upload-item{border-top:1px solid var(--border);padding:.85rem 1rem}.upload-item-main{align-items:flex-start;gap:.65rem;display:flex}.upload-item-icon{color:var(--brand);flex-shrink:0;margin-top:.1rem}.upload-item--done .upload-item-icon{color:#22c55e}.upload-item--error .upload-item-icon{color:#ef4444}.upload-item-info{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.upload-item-info strong{white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.upload-item-info small{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.upload-item-status{color:var(--text-muted);font-size:.78rem}.upload-item-error{color:#ef4444;font-size:.78rem}.upload-item-dismiss{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:.15rem}.upload-progress{background:#8b2fc91f;border-radius:999px;height:4px;margin-top:.55rem;overflow:hidden}.upload-progress-bar{background:linear-gradient(90deg, var(--brand), var(--brand-green));border-radius:999px;height:100%;transition:width .2s}@media (max-width:900px){.sidebar{width:100%;height:auto;position:relative}.main-content{margin-left:0}.app-layout{flex-direction:column}.detail-grid,.grid-2,.form-grid{grid-template-columns:1fr}}
