@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";html{background:#f6f8f4}body{margin:0;font-family:Manrope,sans-serif}button,textarea{font-family:inherit}*{box-sizing:border-box}:root{--primary:#147d75;--primary-dark:#0d4f4b;--primary-light:#e6f2ed;--accent:#e56d43;--bg-primary:#f5f7f3;--bg-secondary:#fff;--text-primary:#17211f;--text-secondary:#66746e;--border:#d8e0db;--success:#4a773b;--error:#c82333;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px}body{background:var(--bg-primary);color:var(--text-primary);margin:0;font-family:Inter,sans-serif}button,input,textarea,select{font:inherit}.login-shell{background:linear-gradient(135deg,#edf8f5 0%,#f5f7f3 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;width:min(100%,460px);padding:32px;box-shadow:0 18px 45px #147d751f}.login-header{margin-bottom:24px}.login-badge{background:var(--primary-light);color:var(--primary-dark);text-transform:uppercase;letter-spacing:.08em;border-radius:999px;padding:6px 12px;font-size:.75rem;font-weight:700;display:inline-block}.login-header h1{color:var(--text-primary);margin:16px 0 8px;font-size:2rem}.login-header p{color:var(--text-secondary);margin:0;line-height:1.5}.login-form{flex-direction:column;gap:8px;display:flex}.auth-toggle{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px;display:grid}.auth-tab{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:#f7faf8;border-radius:8px;padding:10px 14px;font-weight:600;transition:all .2s}.auth-tab.active{background:var(--primary-light);color:var(--primary-dark);border-color:var(--primary)}.login-error{color:var(--error);margin:-4px 0 8px;font-size:.9rem;font-weight:600}.app-shell{background:var(--bg-primary);min-height:100vh;display:flex}.sidebar{background:var(--bg-secondary);border-right:1px solid var(--border);width:280px;padding:var(--spacing-lg);flex-direction:column;transition:width .3s,transform .3s;display:flex;overflow-y:auto}.sidebar.closed{width:70px;padding:var(--spacing-md)}.sidebar-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);min-height:60px;display:flex}.sidebar.closed .sidebar-header{align-items:center;gap:var(--spacing-sm);flex-direction:column;min-height:auto}.sidebar-title{flex:1}.sidebar-title h1{margin:0 0 var(--spacing-sm);color:var(--text-primary);white-space:nowrap;font-size:1.25rem}.sidebar-author{margin:0 0 var(--spacing-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem;font-weight:600;line-height:1.3}.sidebar-subject{color:var(--primary);margin:0;font-size:.8rem;font-weight:500}.toggle-btn{background:var(--primary-light);border:2px solid var(--primary);padding:var(--spacing-sm);cursor:pointer;color:var(--primary);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.2rem;transition:all .2s;display:flex}.toggle-btn:hover{background:var(--primary);color:#fff;transform:scale(1.05)}.toggle-btn:active{transform:scale(.95)}.sidebar-nav{gap:var(--spacing-lg);flex-direction:column;flex:1;display:flex}.nav-section h3{margin:var(--spacing-md) 0 var(--spacing-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-size:.85rem;font-weight:600}.nav-btn{padding:var(--spacing-sm) var(--spacing-md);color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;font-size:.95rem;font-weight:500;transition:all .2s}.nav-btn:hover{background:var(--primary-light);color:var(--primary)}.nav-btn.active{background:var(--primary-light);color:var(--primary);border-color:var(--primary);font-weight:600}.sidebar-footer{padding-top:var(--spacing-lg);border-top:1px solid var(--border);min-width:0;margin-top:auto}.sidebar-footer p{color:var(--text-secondary);margin:0;font-size:.85rem;line-height:1.5}.user-summary{min-width:0}.user-label{white-space:nowrap}.user-name{max-width:100%;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.sidebar-role{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden;color:var(--primary-dark)!important;margin-top:4px!important}.compact-user{background:var(--primary-light);width:36px;height:36px;color:var(--primary-dark);border-radius:50%;justify-content:center;align-items:center;margin:0 auto;font-weight:700;display:flex}.logout-btn{width:100%;margin-top:12px}.sidebar.closed .sidebar-footer{padding-top:var(--spacing-md)}.sidebar.closed .logout-btn{padding:var(--spacing-sm);text-align:center;font-size:1.25rem}.app-content{padding:var(--spacing-xl);flex-direction:column;flex:1;display:flex;overflow-y:auto}.app-header{margin-bottom:var(--spacing-xl);flex-shrink:0}.app-header h2{margin:0 0 var(--spacing-sm);color:var(--text-primary);font-size:2rem}.subtitle{color:var(--text-secondary);margin:0;font-size:1rem}.mode-panel{background:var(--bg-secondary);border:1px solid var(--border);padding:var(--spacing-lg);border-radius:12px;width:100%;max-width:100%}.mode-panel h3{margin:0 0 var(--spacing-lg);color:var(--text-primary);border-bottom:2px solid var(--primary);padding-bottom:var(--spacing-md);font-size:1.25rem}.control-group{margin-bottom:var(--spacing-lg);gap:var(--spacing-sm);flex-direction:column;display:flex}.control-group label{color:var(--text-primary);text-transform:capitalize;font-size:.9rem;font-weight:600}.control-group input,.control-group select,.control-group textarea{padding:var(--spacing-md);border:1px solid var(--border);color:var(--text-primary);background:var(--bg-primary);border-radius:6px;font-family:inherit;font-size:.95rem;transition:border-color .2s}.control-group input:focus,.control-group select:focus,.control-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}.control-group textarea{resize:vertical;min-height:120px;font-family:Monaco,Courier,monospace;font-size:.9rem}.control-group select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23147d75' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-md) center;appearance:none;padding-right:2.5rem}.btn-primary,.btn-copy{padding:var(--spacing-md) var(--spacing-lg);cursor:pointer;text-transform:uppercase;letter-spacing:.05em;border:none;border-radius:6px;font-size:.95rem;font-weight:600;transition:all .2s}.btn-primary{background:var(--primary);color:#fff;width:100%;margin-bottom:var(--spacing-lg)}.btn-primary:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 4px 12px #147d754d}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.7;cursor:wait;transform:none}.btn-copy{background:var(--primary-light);color:var(--primary);width:100%;margin-top:var(--spacing-md);border:1px solid var(--primary)}.btn-copy:hover{background:var(--primary);color:#fff}.result-box,.detection-box{background:var(--primary-light);border:1px solid var(--primary);padding:var(--spacing-lg);margin-top:var(--spacing-lg);border-radius:8px}.result-box label{color:var(--primary);margin-bottom:var(--spacing-md);text-transform:capitalize;font-size:.9rem;font-weight:600;display:block}.result-box textarea{width:100%;min-height:100px;padding:var(--spacing-md);border:1px solid var(--primary);color:var(--text-primary);resize:vertical;background:#fff;border-radius:6px;font-family:Monaco,Courier,monospace;font-size:.9rem}.detection-box{background:var(--primary-light);padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.detection-box div{margin:var(--spacing-sm) 0;color:var(--primary-dark);font-size:.9rem}.detection-box strong{color:var(--primary-dark);font-weight:600}@media (width<=768px){.app-shell{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%;padding:var(--spacing-md)}.sidebar.closed{align-items:center;gap:var(--spacing-md);width:100%;padding:var(--spacing-md);flex-direction:row}.sidebar.closed .sidebar-header{flex-direction:row;min-height:auto;margin-bottom:0}.sidebar-header{flex-direction:column}.sidebar-title h1{font-size:1.1rem}.app-content{padding:var(--spacing-lg)}.app-header h2{font-size:1.5rem}.mode-panel{max-width:100%}.control-group input,.control-group select,.control-group textarea{font-size:16px}}@media (width<=480px){.app-content,.mode-panel{padding:var(--spacing-md)}.app-header h2{font-size:1.25rem}.sidebar-title h1,.sidebar-author,.sidebar-subject{display:none}.sidebar.closed{padding:var(--spacing-sm);width:100%}.sidebar.closed .sidebar-header{justify-content:flex-start}.info-row{grid-template-columns:1fr}.info-row .nota{margin-top:var(--spacing-sm)}}.diagnostico-box{border:1px solid #a8d5cf;border-left:4px solid var(--primary);padding:var(--spacing-lg);margin-top:var(--spacing-lg);margin-bottom:var(--spacing-lg);background:#f0f9f7;border-radius:8px;width:100%}.diagnostico-box h4{margin:0 0 var(--spacing-md);color:var(--primary-dark);border-bottom:2px solid var(--primary);padding-bottom:var(--spacing-md);font-size:1rem}@media (width>=1200px){.diagnostico-box{gap:var(--spacing-lg);grid-template-columns:1fr 1fr;align-content:start;display:grid}.diagnostico-box h4{grid-column:1/-1}.diagnostico-box .info-row{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);grid-column:auto;grid-template-columns:1fr}.diagnostico-box .info-row .nota{margin-top:var(--spacing-sm);grid-column:1}.diagnostico-box .frecuencias-section{padding-top:var(--spacing-lg);border-top:2px solid #d5e8e3;grid-column:1/-1;margin-top:0}}.info-row{gap:var(--spacing-md);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid #d5e8e3;grid-template-columns:minmax(180px,200px) 1fr;display:grid}.info-row:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.info-row .label{color:var(--primary-dark);word-break:break-word;font-size:.9rem;font-weight:600}.info-row .value{color:var(--primary);word-break:break-all;font-family:Monaco,Courier,monospace;font-size:.95rem;font-weight:600}.info-row .nota{color:var(--text-secondary);margin-top:-var(--spacing-md);border:none;grid-column:1/-1;padding-top:0;font-size:.85rem;display:block}.result-box .result-header{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:2px solid var(--primary);justify-content:space-between;align-items:center;display:flex}.result-box .result-header strong{color:var(--primary-dark)}.result-box .confidence{color:var(--text-secondary);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--primary);background:#fff;border-radius:4px;font-size:.9rem}.frecuencias-section{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:2px solid #d5e8e3}.frecuencias-section h5{margin:0 0 var(--spacing-md);color:var(--primary-dark);text-transform:uppercase;letter-spacing:.05em;font-size:.95rem}.frecuencias-table{border-collapse:collapse;background:#fff;border:1px solid #d5e8e3;border-radius:6px;width:100%;overflow:hidden;box-shadow:0 1px 3px #0000000d}.frecuencias-table thead{border-bottom:2px solid var(--primary);background:#e6f2ed}.frecuencias-table th{padding:var(--spacing-md) var(--spacing-md);text-align:left;color:var(--primary-dark);text-transform:uppercase;letter-spacing:.03em;font-size:.85rem;font-weight:600}.frecuencias-table td{padding:var(--spacing-sm) var(--spacing-md);color:var(--text-primary);border-bottom:1px solid #e8f0ed;font-size:.9rem}.frecuencias-table tr:hover{background:#f9fdfb}.frecuencias-table .highlight-row{background:#e6f2ed;font-weight:600}.frecuencias-table .highlight-row td{color:var(--primary-dark)}.frecuencias-table .letra-cell{text-align:center;color:var(--primary);font-family:Monaco,Courier,monospace;font-weight:700}.nota-frecuencias{margin:var(--spacing-md) 0 0 0;color:var(--text-secondary);font-size:.85rem;font-style:italic}@media (width>=1024px){.mode-panel{gap:var(--spacing-lg);grid-template-columns:1fr 1fr;align-items:start;display:grid}.mode-panel h3{grid-column:1/-1}.control-group{grid-column:auto}.mode-panel>.btn-primary{grid-column:1/-1}.result-box,.diagnostico-box{margin-top:var(--spacing-lg);grid-column:1/-1}.app-content{max-width:1400px;margin:0 auto}}@media (width>=1600px){.app-content{max-width:100%}.mode-panel{grid-template-columns:1fr 1.2fr}.control-group:first-of-type{grid-column:1/-1}}
