:root{--color-primary:#6192cc;--color-primary-dark:#4a6d8d;--color-dark:#303030;--color-bg:#f1f1f1;--color-bg-active:#e8eef7}body,html{box-sizing:border-box;margin:0;font-family:system-ui,-apple-system,sans-serif;font-size:14px;color:var(--color-dark);background:var(--color-bg)}*,:after,:before{box-sizing:inherit}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.appShell{min-height:100vh;display:flex;flex-direction:column}.topNav{background:var(--color-dark);color:#fff;padding:0 1.5rem;display:flex;align-items:center;gap:2rem;height:48px}.topNav a{color:#ccc}.topNav a.active,.topNav a:hover{color:#fff}.topNav .brand{font-weight:600;margin-right:1rem}.subNav{background:#fff;border-bottom:1px solid #e0e0e0;padding:0 1.5rem;display:flex;gap:.5rem}.subNav a{padding:.75rem 1rem;color:#555}.subNav a:hover{color:var(--color-dark)}.subNav a.active{color:var(--color-primary);font-weight:500;border-bottom:2px solid var(--color-primary);margin-bottom:-1px}.main{flex:1 1;padding:1.5rem}.main,.pageWithTable{min-height:0;display:flex;flex-direction:column}.pageWithTable{flex:1 1}.cardWithTable{display:flex;flex-direction:column;flex:1 1;min-height:0}.cardWithTable>:not(.data-table-container){flex-shrink:0}.card{border-radius:8px;border:1px solid #e0e0e0;padding:1rem 1.5rem;margin-bottom:1rem}.btn,.card{background:#fff}.btn{display:inline-block;padding:.5rem 1rem;font-size:14px;border-radius:6px;border:1px solid #ccc;cursor:pointer}.btn:hover{background:#f0f0f0}.btn.primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn.primary:hover{background:var(--color-primary-dark)}.btn:disabled{opacity:.8;cursor:not-allowed}.btnWithSpinner{display:inline-flex;align-items:center;gap:.5rem}.spinner{display:inline-block;width:14px;height:14px;border:2px solid #e0e0e0;border-top:2px solid var(--color-primary);border-radius:50%;animation:spinner .7s linear infinite}@keyframes spinner{to{transform:rotate(1turn)}}@keyframes waveformShimmer{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.audioUiLoadingShimmer,.audioUiLoadingWaveform{animation:waveformShimmer 1.5s ease-in-out infinite}.audioUiLoadingWaveform{min-height:80px;width:100%;background:#e0e6ee;border-radius:4px;border:1px solid #e0e0e0}.audioUiLoadingShimmer{background:#e8ecf1}.formRow{margin-bottom:1rem}.formRow label{display:block;margin-bottom:.25rem;font-weight:500}.formRow input,.formRow select,.input{padding:.5rem;border:1px solid #ccc;border-radius:4px}.formRow input,.formRow select{width:100%;max-width:400px}input[type=date],input[type=datetime-local],input[type=time]{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif!important;font-size:14px;color:var(--color-dark)}.app select,.card select,.formGroup select,.formRow select,.masterFrame select,body select,body.app select,select{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;display:inline-block;padding:.4rem 2rem .4rem .65rem!important;font-size:14px;font-family:inherit;color:var(--color-dark)!important;background-color:#fff!important;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='%234A6D8D' d='M6 8L2 4h8L6 8z'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right .5rem center!important;border:1px solid #ccc!important;border-radius:6px!important;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease;box-shadow:none!important}.app select:hover,body select:hover,select:hover{border-color:var(--color-primary-dark)!important}.app select:focus,body select:focus,select:focus{outline:none!important;border-color:var(--color-primary)!important;box-shadow:0 0 0 2px rgba(97,146,204,.25)!important}.app select option,body select option,select option{padding:.35rem .5rem;background:#fff;color:var(--color-dark)}.table{width:100%;border-collapse:collapse}.table td,.table th{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #e0e0e0}.table th{font-weight:600;background:#f9f9f9}.badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:12px}.badge.ok{background:#e6f4ea;color:#137333}.badge.error{background:#fce8e6;color:#c5221f}.message{padding:.75rem;border-radius:6px;margin-bottom:1rem}.message.success{background:#e6f4ea;color:#137333}.message.error{background:#fce8e6;color:#c5221f}.overlay{position:fixed;inset:0;z-index:30;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;padding:1.5rem}.panel{background:#fff;border-radius:8px;box-shadow:0 8px 32px rgba(0,0,0,.2);display:flex;flex-direction:column;max-height:calc(100vh - 3rem);width:100%}.panelHeader{flex-shrink:0;padding:1rem 1.25rem;border-bottom:1px solid #e8e8e8;display:flex;justify-content:space-between;align-items:center}.panelClose{padding:.35rem;border:none;background:none;cursor:pointer;color:#666;border-radius:4px;font-size:1.25rem;line-height:1}.panelClose:hover{color:var(--color-dark);background:#e8e8e8}.panelBody{flex:1 1;overflow-y:auto;padding:1.25rem}.panelFooter{flex-shrink:0;padding:1rem 1.25rem;border-top:1px solid #e8e8e8;display:flex;justify-content:flex-end;gap:.75rem}.formGroup{margin-bottom:1rem}.formGroup label{display:block;margin-bottom:.25rem;font-weight:500;font-size:14px}.formGroup input[type=password],.formGroup input[type=text]{width:100%;padding:.5rem .6rem;font-size:14px;border:1px solid #ccc;border-radius:4px}.formGroup input[type=checkbox]{margin:0}.btn.secondary{background:var(--color-bg);color:var(--color-dark);border-color:#ccc}.btn.secondary:hover{background:#e8e8e8}.masterFrame{min-height:100vh;display:flex;flex-direction:column}.masterFrame-header{position:fixed;top:0;left:0;right:0;height:60px;z-index:20;background:var(--color-dark);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;box-shadow:0 1px 3px rgba(0,0,0,.15)}.masterFrame-brand{display:flex;align-items:center;text-decoration:none;color:inherit}.masterFrame-logo{height:44px;width:auto;object-fit:contain;display:block}.masterFrame-headerRight{display:flex;align-items:center;gap:1rem}.masterFrame-username{color:#aaa;font-size:13px}.masterFrame-logout{background:none;border:none;color:#ccc;cursor:pointer;font-size:14px;padding:.25rem .5rem}.masterFrame-logout:hover{color:#fff}.masterFrame-settingsBtn{display:flex;align-items:center;justify-content:center;background:none;border:none;color:#aaa;cursor:pointer;padding:.35rem;border-radius:4px}.masterFrame-settingsBtn:hover{color:#fff;background:hsla(0,0%,100%,.08)}.modalOverlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.masterFrame-sidebar{position:fixed;top:60px;left:0;bottom:0;width:220px;z-index:15;background:#fff;border-right:1px solid #e0e0e0;transition:width .2s ease;overflow:hidden}.masterFrame-sidebar.collapsed{width:48px}.masterFrame-navBar{position:fixed;top:60px;left:220px;right:0;height:44px;z-index:14;background:#fff;border-bottom:1px solid #e0e0e0;display:flex;align-items:center;padding:0 1.5rem;gap:1.5rem;transition:left .2s ease,right .2s ease}.masterFrame[data-sidebar-collapsed=true] .masterFrame-navBar{left:48px}.masterFrame[data-right-sidebar] .masterFrame-navBar{right:var(--right-sidebar-width,0)}.masterFrame-navTitle{font-size:15px;font-weight:700;color:var(--color-dark)}.masterFrame-navOptions{display:flex;align-items:center;gap:.25rem}.masterFrame-navOption{font-size:14px;font-weight:400;color:#666;text-decoration:none;padding:.35rem .75rem;border-radius:4px}.masterFrame-navOption:hover{color:var(--color-dark);background:#e8e8e8}.masterFrame-navOption.active{font-weight:600;color:var(--color-primary);background:var(--color-bg-active)}.masterFrame-sidebarInner{padding:1rem 0;width:220px;position:relative}.masterFrame-sidebar.collapsed .masterFrame-sidebarInner{width:48px;padding:1rem 0}.masterFrame-sidebarToggle{position:absolute;top:.5rem;right:.5rem;width:28px;height:28px;border:1px solid #e0e0e0;background:#fff;border-radius:4px;cursor:pointer;font-size:10px;color:#666;display:flex;align-items:center;justify-content:center}.masterFrame-sidebarToggle:hover{background:var(--color-bg);color:var(--color-dark)}.masterFrame-sidebarList{list-style:none;margin:2rem 0 0;padding:0 .75rem}.masterFrame-sidebar.collapsed .masterFrame-sidebarList{display:none}.masterFrame-sidebar.collapsed .masterFrame-sidebarToggle{right:auto;left:50%;transform:translateX(-50%)}.masterFrame-sidebarList li{margin-bottom:.25rem}.masterFrame-sidebarLink{display:block;padding:.5rem .75rem;color:#555;text-decoration:none;border-radius:6px;font-size:14px}.masterFrame-sidebarLink:hover{color:var(--color-dark);background:var(--color-bg)}.masterFrame-sidebarLink.active{color:var(--color-primary);font-weight:500;background:var(--color-bg-active)}.masterFrame-main{margin-top:104px;margin-left:220px;margin-right:0;height:calc(100vh - 104px);display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:0;background:var(--color-bg);transition:margin-left .2s ease,margin-right .2s ease,padding-right .2s ease}.masterFrame-mainInner{flex:1 1;min-height:0;overflow-y:auto;display:flex;flex-direction:column}.masterFrame[data-sidebar-collapsed=true] .masterFrame-main{margin-left:48px}.masterFrame[data-right-sidebar] .masterFrame-main{margin-right:var(--right-sidebar-width,0)}