:root{color-scheme:light dark;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-size:16px;--bg-color: #ffffff;--text-color: #213547;--surface-color: #f9f9f9;--border-color: #ccc;--button-bg: #f9f9f9;--button-text-color: #213547;--primary-color: #646cff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dark{--bg-color: #242424;--text-color: rgba(255, 255, 255, .87);--surface-color: #1a1a1a;--border-color: #555;--button-bg: #1a1a1a;--button-text-color: rgba(255, 255, 255, .87)}a{font-weight:500;color:var(--primary-color);text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--bg-color);color:var(--text-color)}#root{min-height:100vh}.navbar{display:flex;align-items:center;justify-content:flex-start;gap:.75rem;width:100%;box-sizing:border-box;padding:.5rem 1rem;background-color:var(--surface-color);border-bottom:1px solid var(--border-color);margin-bottom:1rem}.navbar-logo{height:40px}.navbar-links{display:flex;align-items:center;gap:.5rem;margin-left:auto;margin-right:.5rem}.navbar-link{color:var(--text-color);font-weight:600;padding:.4rem 1rem;border-radius:999px;transition:background-color .2s ease,color .2s ease}.navbar-link:hover{background-color:#646cff1f;color:var(--primary-color)}.navbar-link-active{background-color:var(--primary-color);color:#fff}h1{font-size:3.2em;line-height:1.1}button{border-radius:12px;border:1px solid transparent;padding:.7em 1.4em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--button-bg);color:var(--button-text-color);cursor:pointer;transition:border-color .25s}button:hover{border-color:var(--primary-color)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}input{border-radius:12px;padding:.7em;font-size:1em;border:1px solid var(--border-color);background-color:var(--surface-color);color:var(--text-color);box-sizing:border-box}.settings-button{background:none;border:none;font-size:1.8rem;padding:.2rem;line-height:1;cursor:pointer;margin-left:.25rem}.settings-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0000004d;display:flex;justify-content:flex-end;z-index:1000}.settings-panel{position:relative;width:300px;background:var(--surface-color);color:var(--text-color);border-left:1px solid var(--border-color);padding:1rem;box-shadow:-2px 0 8px #0003}.settings-close{position:absolute;top:.5rem;right:.5rem;background:none;border:none;font-size:1.2rem;line-height:1}.settings-section+.settings-section{margin-top:1rem}.subject-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem}.subject-item{display:block;width:100%;text-align:left;padding:.5rem 1rem;border:1px solid var(--border-color);border-radius:8px;background-color:var(--surface-color);color:var(--text-color);cursor:pointer}.subject-item:hover{border-color:var(--primary-color)}.subject-item.selected{background-color:var(--primary-color);border-color:var(--primary-color);color:#fff}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-content{flex:1;display:flex;flex-direction:column;padding:1rem;box-sizing:border-box}.auth-wrapper{flex:1;display:flex;justify-content:center;align-items:center;padding:2rem 1rem;box-sizing:border-box;width:100%}.login-form{display:flex;flex-direction:column;max-width:320px;width:100%;margin:0;padding:2rem;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-color)}.login-form h2{margin-bottom:1rem;text-align:center}.login-form input{margin:.5rem 0;padding:.8rem;font-size:1rem;border:1px solid var(--border-color);border-radius:12px}.login-form button{margin-top:1rem;padding:.8rem;font-size:1rem;background:var(--primary-color);color:#fff;border:none;border-radius:12px;cursor:pointer}.login-form button:hover{background:#535bf2}.login-form p{margin-top:1rem;text-align:center}.loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.loading-content{text-align:center;color:#fff}.spinner{border:4px solid #f3f3f3;border-top:4px solid #646cff;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:0 auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.notification-overlay{position:fixed;inset:0;display:flex;justify-content:center;align-items:flex-start;padding:2rem 1rem;z-index:1100;pointer-events:none}.notification-panel{display:flex;align-items:center;gap:1rem;max-width:480px;width:100%;padding:1.25rem 1.5rem;border-radius:16px;color:#fff;box-shadow:0 20px 40px #0f172a40;pointer-events:auto;font-size:1rem;line-height:1.4}.notification-success{background:linear-gradient(135deg,#16a34a,#22c55e)}.notification-error{background:linear-gradient(135deg,#dc2626,#ef4444)}.notification-message{flex:1;font-weight:600}.notification-close{background:#00000026;border:none;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;padding:.1rem .4rem;border-radius:8px;transition:background .2s ease}.notification-close:hover,.notification-close:focus-visible{background:#0000004d;outline:none}.upload-page{position:relative;flex:1;width:100%;display:flex;justify-content:center;align-items:center;padding:2rem 1rem;box-sizing:border-box}.upload-form{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:420px;padding:2rem;border-radius:16px;border:1px solid var(--border-color);background:var(--surface-color);box-shadow:0 12px 32px #0f172a1f;box-sizing:border-box;position:relative}.upload-form-overlay{position:absolute;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;border-radius:inherit;z-index:1}.upload-header{text-align:center}.upload-header h1{margin:0 0 .5rem;font-size:1.75rem}.upload-header p{margin:0;color:var(--text-color);opacity:.8}.upload-label{font-weight:600}.upload-file{margin:0;font-size:.95rem;color:var(--text-color);opacity:.9}.cases-page{flex:1;width:100%;display:flex;justify-content:center;padding:1rem;box-sizing:border-box}.cases-card{width:100%;max-width:80vw;padding:2rem;border-radius:20px;border:1px solid var(--border-color);background:var(--surface-color);box-shadow:0 20px 40px #0f172a1f;display:flex;flex-direction:column;gap:1.5rem;box-sizing:border-box}.cases-card__header{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start;gap:1rem}.cases-card__title{display:flex;gap:1rem;align-items:center}.cases-card__icon{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:12px;background:#646cff1f;font-size:1.75rem}.cases-card__title h1{margin:0;font-size:1.5rem}.cases-card__title p{margin:.25rem 0 0;color:var(--text-color);opacity:.75;font-size:.95rem}.cases-content{display:flex;flex-direction:column;gap:1rem}.cases-table-wrapper{overflow-x:auto}.cases-table{width:100%;border-collapse:separate;border-spacing:0 .75rem}.cases-table thead th{text-align:left;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-color);opacity:.6;padding:0 1.25rem}.cases-row{background:#646cff0f;border-radius:16px;box-shadow:0 8px 20px #0f172a14;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.cases-row td{background:transparent}.cases-row:hover,.cases-row:focus-visible{transform:translateY(-2px);box-shadow:0 12px 28px #0f172a1f}.cases-row:focus-visible{outline:3px solid var(--primary-color);outline-offset:-4px}.cases-row td:first-child{border-top-left-radius:16px;border-bottom-left-radius:16px}.cases-row td:last-child{border-top-right-radius:16px;border-bottom-right-radius:16px}.cases-cell{padding:1.25rem;font-weight:500;color:var(--text-color)}.cases-cell--id{font-weight:700;font-size:1.1rem}.cases-status{display:inline-flex;align-items:center;gap:.5rem;font-weight:600}.cases-status__indicator{width:.75rem;height:.75rem;border-radius:50%;background:var(--primary-color);box-shadow:0 0 0 4px #646cff29}.cases-row--completed{background:#22c55e1f}.cases-row--completed .cases-status__indicator{background:#22c55e;box-shadow:0 0 0 4px #22c55e29}.cases-status--completed{color:#166534}.cases-row--running{background:#facc151f}.cases-row--running .cases-status__indicator{background:#facc15;box-shadow:0 0 0 4px #facc1529}.cases-status--running{color:#854d0e}.cases-row--idle{background:#646cff14}.cases-row--idle .cases-status__indicator{background:var(--primary-color);box-shadow:0 0 0 4px #646cff29}.cases-status--idle{color:var(--primary-color)}.cases-row--error{background:#f8717124}.cases-row--error .cases-status__indicator{background:#ef4444;box-shadow:0 0 0 4px #ef444429}.cases-status--error{color:#991b1b}.cases-error{color:#ef4444;font-weight:600}@media (max-width: 1024px){.cases-card{max-width:100%;padding:1.5rem}.cases-card__header{flex-direction:column;align-items:flex-start}.cases-card__title{align-items:flex-start}}@media (max-width: 600px){.cases-card{padding:1.25rem}.cases-card__icon{width:2.5rem;height:2.5rem;font-size:1.4rem}.cases-table{border-spacing:0 .5rem}.cases-cell{padding:1rem}.cases-card__title h1{font-size:1.35rem}}.enum-select{display:flex;flex-wrap:wrap;gap:.5rem}.enum-option{flex:1 0 30%;padding:.5rem 1rem;background:var(--surface-color);color:var(--text-color);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;text-align:center}.enum-option.selected{background:var(--primary-color);color:#fff}.boolean-toggle{display:flex;gap:.5rem}.boolean-option{flex:1;padding:.5rem 1rem;background:var(--surface-color);color:var(--text-color);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;text-align:center;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.boolean-option.selected{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.case-form{display:flex;justify-content:center;padding:1rem}.case-form__form{width:100%;max-width:80vw}.case-form__fieldset{border:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1.5rem}.case-form__section{display:flex;flex-direction:column;gap:1rem}.case-form__header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1.5rem}.case-form__header-info{display:flex;flex-direction:column;gap:.75rem}.case-form__title{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.case-form__title h1{margin:0;font-size:1.75rem;font-weight:700}.case-form__meta{display:flex;flex-wrap:wrap;gap:1rem;color:var(--muted-text-color, #9ca3af);font-size:.95rem}.case-form__meta span{display:flex;align-items:center;gap:.5rem}.case-form__status{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .75rem;border-radius:9999px;font-size:.95rem;font-weight:600;background:#94a3b81a;color:var(--text-color)}.case-form__status-indicator{width:.6rem;height:.6rem;border-radius:50%;background:currentColor}.case-form__status--completed{color:#22c55e;background:#22c55e26}.case-form__status--running{color:#0ea5e9;background:#0ea5e926}.case-form__status--idle{color:#f59e0b;background:#f59e0b26}.case-form__status--error{color:#ef4444;background:#ef444426}.case-form__header-buttons{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end;align-items:center}.case-form__bill-info-grid{display:flex;flex-direction:column;gap:.75rem}.case-form__bill-info-row{display:flex;align-items:flex-start;gap:1.5rem}.case-form__label{flex:0 0 min(40vw,40%);max-width:40vw;text-align:right;font-weight:600;text-transform:capitalize}.case-form__field{display:flex;flex:0 0 min(33.3333vw,33%);max-width:33.3333vw;flex-direction:column;align-items:flex-start;gap:.25rem}.case-form__field input:not([type=checkbox]),.case-form__field select{width:100%}.case-form__field select{border-radius:12px;padding:.7em;font-size:1em;border:1px solid var(--border-color);background-color:var(--surface-color);color:var(--text-color);box-sizing:border-box}.case-form__enum-select,.case-form__boolean-toggle{width:100%}.case-form__ico-input{display:flex;gap:.5rem;width:100%}.case-form__ico-input button{padding:.25rem .5rem;cursor:pointer}.case-form__hint{font-size:.8rem;color:#666}.case-form__visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.case-form__subjects{display:flex;flex-direction:column;gap:.5rem}.case-form__lines-header{display:flex;align-items:center;justify-content:space-between}.case-form__line-add{padding:.25rem .5rem;cursor:pointer}.case-form__lines-table{border:1px solid var(--border-color);border-radius:8px;overflow:hidden;--case-form-line-columns: minmax(4rem, .8fr) minmax(6rem, 1fr) minmax(12rem, 2.4fr) minmax(5rem, 1fr) minmax(6rem, 1fr) max-content}.case-form__lines-headings{display:grid;gap:.75rem;padding:.5rem 1rem;background:var(--surface-color);border-bottom:1px solid var(--border-color);font-weight:600;grid-template-columns:var(--case-form-line-columns)}.case-form__line-actions{display:flex;align-items:center;justify-content:flex-end}.case-form__line-delete{background:transparent;border:none;color:#d93025;font-size:1rem;cursor:pointer;padding:.1rem .25rem;line-height:1}.case-form__line-delete:disabled{opacity:.5;cursor:not-allowed}.case-form__line-field{min-width:0;display:flex;flex-direction:column;gap:.25rem}.case-form__line-row{display:grid;gap:.75rem;padding:.75rem 1rem;align-items:center;grid-template-columns:var(--case-form-line-columns)}.case-form__line-row+.case-form__line-row{border-top:1px solid var(--border-color)}.case-form__line-field input{width:100%}.case-form__line-heading{display:flex;align-items:center;min-width:0}.case-form__actions{display:flex;justify-content:flex-end}.case-form__overlay{position:fixed;inset:0;background:#000c;display:flex;justify-content:center;align-items:center;z-index:1000}.case-form__overlay img{max-width:90%;max-height:90%;object-fit:contain}@media (max-width: 768px){.case-form{padding:1rem .5rem}.case-form__header{flex-direction:column;align-items:stretch}.case-form__label{text-align:left}.case-form__field{width:100%}.case-form__bill-info-row{flex-direction:column;align-items:stretch;gap:.5rem}.case-form__lines-headings,.case-form__line-row{grid-template-columns:1fr}}@media (max-width: 768px){.case-form__label{flex:0 0 auto;width:100%;text-align:left}.case-form__form{max-width:100vw}}
