*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,sans-serif;background:#f5f0e8;color:#1e293b;min-height:100vh}header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;border-bottom:1px solid #ddd6c8;background:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:10}header .logo{font-weight:700;font-size:1.1rem;color:#2563eb}header nav{display:flex;gap:.5rem;align-items:center}header nav a{color:#64748b;text-decoration:none;padding:.4rem .75rem;border-radius:.375rem;font-size:.875rem;transition:color .15s}header nav a:hover{color:#1e293b}.btn{background:#2563eb;color:#fff;border:none;padding:.4rem .9rem;border-radius:.375rem;font-size:.875rem;cursor:pointer;text-decoration:none}.btn-outline{background:transparent;border:1px solid #cbd5e1;color:#1e293b}.btn:hover{background:#1d4ed8}.btn-outline:hover{border-color:#94a3b8}main{display:grid;grid-template-columns:180px 1fr;min-height:calc(100vh - 53px)}section{padding:3rem 2rem;display:flex;flex-direction:column;gap:1.5rem;align-items:flex-start;justify-content:center}h1{font-size:2.5rem;font-weight:800;line-height:1.2}h1 span{color:#2563eb}p.lead{color:#64748b;max-width:38ch;line-height:1.6}.actions{display:flex;gap:.75rem}aside{border-right:1px solid #ddd6c8;padding:1rem .75rem;background:#faf7f2;overflow-y:auto}aside h2{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:#94a3b8;margin-bottom:.75rem}.name-row{display:block;padding:.4rem .5rem;border-radius:.25rem;font-size:.875rem;color:#475569;text-decoration:none}.name-row.active,.name-row:hover{background:#ede8df;color:#2563eb}.name-row.active{font-weight:600}.tool-page{align-items:stretch!important;justify-content:flex-start!important;gap:1.5rem!important}.tool-header h2{font-size:1.25rem;font-weight:700}.tool-header p{color:#64748b;font-size:.875rem;margin-top:.25rem}.tool-form{gap:1.25rem;max-width:540px;width:100%}.field,.tool-form{display:flex;flex-direction:column}.field{gap:.375rem}.field label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.field input,.field select{padding:.5rem .75rem;border:1px solid #ddd6c8;border-radius:.375rem;font-size:.875rem;background:#fff;color:#1e293b}.field input:focus,.field select:focus{outline:2px solid #2563eb;outline-offset:-1px;border-color:transparent}.field-row{display:flex;gap:.75rem}.field-row .field{flex:1 1}.input-row{display:flex;gap:.5rem}.input-row input{flex:1 1}.info-card{display:flex;gap:.75rem;padding:.75rem;background:#fff;border:1px solid #ddd6c8;border-radius:.5rem}.info-card img{width:100px;height:56px;object-fit:cover;border-radius:.25rem;flex-shrink:0}.info-title{font-weight:600;font-size:.875rem}.info-dur{font-size:.8rem;color:#64748b;margin-top:.2rem}.file-drop{border:2px dashed #ddd6c8;border-radius:.5rem;padding:2rem;text-align:center;cursor:pointer;background:#fff;transition:border-color .15s}.file-drop.has-file,.file-drop:hover{border-color:#2563eb}.file-drop p{color:#64748b;font-size:.875rem}.file-drop .file-name{color:#1e293b;font-weight:500}.status-msg{font-size:.85rem;padding:.5rem .75rem;border-radius:.375rem;background:#f0f9ff;color:#0369a1;border:1px solid #bae6fd}.status-msg.err{background:#fff1f2;color:#be123c;border-color:#fecdd3}.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:.75rem;gap:.75rem;width:100%}.tool-card{background:#fff;border:1px solid #ddd6c8;border-radius:.5rem;padding:1rem;transition:border-color .15s,box-shadow .15s;display:block}.tool-card:hover{border-color:#7c3aed;box-shadow:0 0 0 3px #ede9fe}.tool-card-disabled{background:#faf7f2;border:1px solid #e2ddd6;border-radius:.5rem;padding:1rem;opacity:.65;cursor:default}.badge{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:9999px;font-size:.7rem;font-weight:600;letter-spacing:.03em}.badge-validated{background:#dcfce7;color:#15803d}.badge-on-review{background:#fef3c7;color:#b45309}.tool-runner{background:#fff;border:1px solid #ddd6c8;border-radius:.5rem;padding:1.5rem;max-width:640px}@media (max-width:640px){main{grid-template-columns:1fr}aside{border-right:none;border-bottom:1px solid #ddd6c8}.tool-grid{grid-template-columns:1fr}}