@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#071214;--panel:#102527;--line:#234144;--muted:#a2bab8;--teal:#61e4d6;--white:#f4fbfa}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--white);font:15px/1.55 'DM Sans',system-ui,sans-serif}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,system-ui,sans-serif;line-height:1.25;letter-spacing:-.03em}h1{font-size:clamp(28px,3vw,42px)}h2{font-size:20px}h3{font-size:17px}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,.button{border:1px solid #65e6d9;background:rgba(69,210,195,.15);color:#b5fff6;padding:12px 18px;border-radius:10px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:background .2s,transform .2s}button:hover,.button:hover{background:rgba(69,210,195,.28);transform:translateY(-1px)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--teal);outline-offset:3px}.secondary{background:transparent;border-color:#35585a;color:#c9e5e2}.small{padding:7px 10px;font-size:12px}label{display:block;color:#d6e6e4;font-size:13px;font-weight:600;margin:0 0 16px}input,textarea,select{width:100%;display:block;margin-top:7px;background:rgba(56,185,174,.09);border:1px solid #31565a;color:#fff;padding:12px 14px;border-radius:9px;outline:none}input::placeholder,textarea::placeholder{color:#789996}select option{background:#102527}textarea{resize:vertical}form{margin:0}.auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 60% 12%,#114040 0,transparent 50%),#071214}.auth-card{width:min(100%,480px);padding:clamp(24px,5vw,46px);border:1px solid #2a4d4c;background:linear-gradient(150deg,#102c2d,#081718);border-radius:22px;box-shadow:0 30px 80px #0008}.auth-card h1{margin:14px 0}.auth-card button{width:100%;margin-top:10px}.auth-foot{border-top:1px solid #284344;margin-top:30px;padding-top:18px;color:#789d98;font-size:12px;text-align:center}.muted{color:var(--muted)}.eyebrow{color:#6cdbd0;font-size:11px;letter-spacing:.16em;font-weight:800}.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{background:#091a1c;border-right:1px solid #223a3b;padding:29px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:11px;align-items:center;padding:0 10px 38px}.brand strong{display:block;font-size:12px;letter-spacing:.12em}.brand small,.userlabel small{display:block;color:#7fa6a2;font-size:11px}.mark{width:36px;height:36px;display:grid;place-items:center;background:#153b3c;border:1px solid #286663;border-radius:10px;color:#68e8d9;font-size:23px}.sidebar nav{display:grid;gap:5px}.sidebar nav a{padding:12px 14px;color:#9ebbb8;border-radius:10px;display:flex;gap:13px;align-items:center}.sidebar nav a.active,.sidebar nav a:hover{color:#e7fffb;background:#18393a}.sidebar-bottom{margin-top:auto;display:flex;align-items:center;gap:10px;border-top:1px solid #294144;padding-top:22px}.usericon,.avatar{height:36px;width:36px;border-radius:50%;background:#1d4847;color:#68e8d9;display:grid;place-items:center;flex:none}.userlabel{min-width:0;flex:1}.userlabel strong{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:12px}.iconbutton{padding:7px;background:none;border:none;font-size:20px}.main{padding:28px clamp(18px,4vw,62px) 24px;max-width:1600px;width:100%;margin:auto}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:35px}.top-title{font-weight:800;font-size:20px;letter-spacing:-.03em}.online{font-size:12px;color:#a5c9c3}.dot{display:inline-block;background:#55d7ad;height:7px;width:7px;border-radius:50%;margin-right:7px}.welcome{padding:clamp(28px,4vw,55px);background:radial-gradient(ellipse at 88% 20%,#174b4a,transparent 60%),linear-gradient(135deg,#102c2e,#0b1c1e);border:1px solid #285252;border-radius:20px;margin-bottom:22px}.welcome h1{margin:13px 0}.welcome p{color:#b6cfcb;max-width:620px}.welcome .button{margin-top:10px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:30px}.stat{background:#102729;border:1px solid #213f40;padding:19px 23px;border-radius:13px}.stat strong{font-size:29px;color:#69e4d6;display:block;font-family:Manrope}.stat span{color:#a9c4c0;font-size:12px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:24px 0 18px}.section-heading h1,.section-heading h2{margin:0}.section-heading a:not(.button){color:#79e6d9;font-size:13px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,285px),1fr));gap:18px}.project-card,.mini-card,.panel{background:#102527;border:1px solid #284446;border-radius:16px;overflow:hidden}.project-card{transition:border-color .2s,transform .2s}.project-card:hover,.mini-card:hover{border-color:#55bfb7;transform:translateY(-2px)}.project-art{height:145px;display:grid;place-items:center;background:radial-gradient(circle at 50% 60%,#25605b 0,#123537 38%,#0b1d20 78%);color:#68e9d9;font-size:62px}.card-content{padding:22px}.card-content h3{margin:13px 0 5px}.card-content p,.mini-card p{color:#8eafaa;font-size:13px}.pill{border:1px solid #2d6861;background:#17423e;border-radius:30px;color:#9ff1e7;font-size:11px;padding:5px 9px;white-space:nowrap;display:inline-block}.progress-label{display:flex;justify-content:space-between;color:#a4c3be;font-size:12px;margin:18px 0 7px}.progress-label strong{color:#70e8d9}.progress{height:6px;background:#2c4a49;border-radius:9px;overflow:hidden}.progress i{height:100%;display:block;background:linear-gradient(90deg,#2daaa2,#79f5e5);border-radius:9px}.progress.large{height:9px;margin-bottom:18px}.card-link{color:#6fe8db;display:block;text-align:right;margin-top:19px;font-size:13px;font-weight:700}.mini-card{padding:23px;transition:transform .2s,border-color .2s}.mini-card h3{margin:16px 0 9px}.panel{padding:clamp(20px,3vw,30px);margin-bottom:18px}.panel h2{margin:10px 0 18px}.panel hr{border:0;border-top:1px solid #315052;margin:25px 0}.narrow{max-width:650px}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.two-col .panel{min-width:0}.notice{padding:14px 18px;border:1px solid #3e8d81;background:#123e39;color:#c2fff6;border-radius:10px;margin:0 0 20px;overflow-wrap:anywhere}.notice.danger{background:#421c25;border-color:#98515d;color:#ffdce2}.notice textarea{margin:10px 0}.list a{display:flex;align-items:center;gap:13px;padding:15px 3px;border-bottom:1px solid #254244}.list a:last-child{border-bottom:0}.list a:hover{color:#7ee7da}.list-body{flex:1;min-width:0}.list-body strong,.list-body small{display:block;overflow-wrap:anywhere}.list-body small{font-size:12px;color:#91b4ae}.actions{display:flex;gap:10px;flex-wrap:wrap}.timeline article{border-left:2px solid #367b75;padding:0 0 22px 19px;margin-left:5px}.timeline article h3{margin:9px 0}.timeline article p{white-space:normal;color:#b7ceca;overflow-wrap:anywhere}.timeline article form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.file{display:flex;gap:11px;align-items:center;border-bottom:1px solid #284546;padding:14px 0;flex-wrap:wrap}.fileicon{width:35px;height:35px;display:grid;place-items:center;border-radius:9px;background:#1b4845;color:#72e7d8}.filetext{flex:1;min-width:140px;overflow-wrap:anywhere}.filetext strong,.filetext small{display:block}.filetext small{color:#90b0ab;font-size:11px}.filelink{color:#76e9dc;font-size:12px}.empty{padding:35px;color:#a9c9c4;background:#102527;border:1px dashed #345657;border-radius:14px}.main footer{font-size:11px;color:#70938e;border-top:1px solid #203b3c;padding-top:18px;margin-top:35px}@media(max-width:800px){.shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto;padding:15px 16px;gap:12px}.brand{padding:0}.sidebar nav{display:flex;overflow:auto;gap:4px}.sidebar nav a{white-space:nowrap;padding:8px 11px;font-size:13px}.sidebar-bottom{position:absolute;right:15px;top:15px;margin:0;border:0;padding:0}.sidebar-bottom .userlabel{display:none}.sidebar-bottom .usericon{width:30px;height:30px}.sidebar-bottom form{display:none}.brand{padding-right:100px}.main{padding:24px 17px}.topbar{margin-bottom:24px}.two-col{grid-template-columns:1fr}.online{display:none}}@media(max-width:420px){.section-heading{align-items:flex-start;flex-direction:column}.stats{grid-template-columns:repeat(2,1fr)}.auth-card{padding:25px}.welcome{padding:25px}.cards{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Identidad oficial — archivo PNG aportado por Nordic Creative Studio */
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding-bottom:30px}
.official-brand-logo{width:165px;max-width:100%;height:auto;display:block;object-fit:contain}
.login-logo{width:190px;max-width:65%;height:auto;display:block;margin:0 auto 24px}
@media(max-width:800px){.brand{flex-direction:row;align-items:center;gap:12px;padding-bottom:0}.official-brand-logo{width:78px}}

.sidebar-copyright{width:100%;padding-top:13px;font-size:10px;line-height:1.6;color:#7caaa5;text-align:center}
.logout-label{font-size:11px}

/* v4: pie de navegación accesible y sin superposición */
.sidebar{min-width:0;overflow-y:auto;overflow-x:hidden}
.sidebar-bottom{margin-top:auto;display:flex;flex-direction:column;align-items:stretch;gap:12px;padding-top:18px;flex-shrink:0}
.admin-user-row{display:flex;align-items:center;gap:10px;min-width:0}
.logout-form{width:100%}
.logout-button{width:100%;justify-content:center;padding:11px 12px;background:#103031;border:1px solid #315d5a;font-size:13px;white-space:normal}
.sidebar-copyright{border-top:1px solid #274647;padding:14px 0 0;text-align:left;font-size:10px;line-height:1.65;overflow-wrap:anywhere}
.client-mode .sidebar{background:#081a1b}
.client-identity{display:flex;gap:12px;align-items:center;background:linear-gradient(135deg,#153b3b,#102a2c);border:1px solid #32605b;border-radius:14px;padding:13px 10px;margin-bottom:24px;min-width:0}
.client-avatar,.profile-avatar,.welcome-avatar{flex:none;width:54px;height:54px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,#205955,#0f3535);border:1px solid #478d83;color:#92f6e9;font-weight:800;font-size:20px;overflow:hidden}
.client-avatar img,.profile-avatar img,.welcome-avatar img,.avatar img{display:block;width:100%;height:100%;object-fit:contain;padding:5px}
.identity-copy{min-width:0;flex:1}.identity-copy .eyebrow{font-size:9px;letter-spacing:.11em}.identity-copy strong{display:block;overflow-wrap:anywhere;font-size:13px;line-height:1.3;margin:5px 0}.identity-copy small{display:block;color:#a7cbc5;font-size:10px}.identity-copy .dot{width:6px;height:6px}
.client-mode .welcome{background:radial-gradient(ellipse at 92% 15%,#1b5350,transparent 58%),linear-gradient(135deg,#102e30,#0b1b1e)}
.welcome-client-badge{display:flex;align-items:center;gap:14px;margin-bottom:15px}.welcome-client-badge strong{display:block;font-size:16px;margin-top:3px}.welcome-avatar{width:62px;height:62px}
.client-mode .project-card,.client-mode .mini-card{background:#102729;border-color:#2d5150}.client-mode .project-card:hover,.client-mode .mini-card:hover{box-shadow:0 14px 40px #0005;border-color:#69cbbd}
.project-art{position:relative;overflow:hidden}.project-art .art-grid{position:absolute;inset:0;background-image:linear-gradient(#72dbd110 1px,transparent 1px),linear-gradient(90deg,#72dbd110 1px,transparent 1px);background-size:25px 25px;mask-image:linear-gradient(135deg,transparent,#000)}.project-art .art-symbol{position:relative;z-index:1;font-size:65px;font-weight:400;text-shadow:0 0 40px #5de7d36e}.project-art .art-caption{position:absolute;left:18px;bottom:13px;font-size:10px;letter-spacing:.2em;color:#b2f9ef;font-weight:700}
.project-art.service-branding{background:radial-gradient(ellipse at 50% 25%,#2e5450,#101d25 70%)}.project-art.service-3d{background:radial-gradient(ellipse at 60% 40%,#1b6867,#0d2024 75%)}.project-art.service-web{background:radial-gradient(ellipse at 50% 40%,#245a58,#0d2024 75%)}
.project-cover img{width:100%;height:100%;object-fit:cover;display:block}.cover-preview .project-art{border-radius:12px;margin:14px 0;max-width:550px}.project-detail-visual .project-art{height:240px;border-radius:16px;margin-bottom:18px}.client-mode .mini-card .project-art{height:130px;margin:-23px -23px 18px}
.client-profile-preview{display:flex;align-items:center;gap:14px;margin:20px 0}.client-profile-preview strong,.client-profile-preview small{display:block;overflow-wrap:anywhere}.client-profile-preview small{font-size:12px;color:#91b7b0}.profile-avatar{width:62px;height:62px}.identity-form{margin:12px 0 22px}.check-label{display:flex;align-items:center;gap:8px;font-size:12px}.check-label input{width:auto;margin:0}
@media(max-width:800px){.sidebar{position:relative;height:auto;overflow:visible;gap:12px}.client-identity{margin:5px 0;max-width:100%}.sidebar-bottom{position:static;margin-top:6px;padding:10px 0 0;border-top:1px solid #294144;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px}.sidebar-bottom .admin-user-row{display:none}.sidebar-bottom .logout-form{display:block;width:auto}.sidebar-bottom .sidebar-copyright{display:block;border:0;padding:0;text-align:right;font-size:9px;max-width:150px}.brand{padding-right:0}.client-mode .sidebar nav{order:3}.client-mode .sidebar-bottom{order:4}.client-mode .client-identity{order:2}.client-mode .brand{order:1}.logout-button{width:auto;white-space:nowrap}}
@media(max-width:420px){.sidebar-bottom{flex-wrap:wrap}.sidebar-bottom .sidebar-copyright{max-width:none}.client-identity{padding:10px}.client-avatar{width:46px;height:46px}.identity-copy strong{font-size:12px}}
