:root{--bg:#f4f5f7;--surface:#fff;--text:#1c2230;--muted:#667085;--border:#dde1e7;--primary:#1f5eff;--primary-hover:#1749cc;--primary-soft:#e8efff;--danger:#c62828;--success:#1b7f3b;--radius:10px;--shadow:0 1px 2px #1018280f, 0 1px 3px #10182814}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:15px;line-height:1.45}a{color:var(--primary);text-decoration:none}h1{margin:0;font-size:1.6rem}.container{max-width:1200px;margin:0 auto;padding:0 16px}.main{padding-top:24px;padding-bottom:48px}.muted{color:var(--muted);font-size:.88em}.nowrap{white-space:nowrap}.error-text{color:var(--danger)}.success-text{color:var(--success);align-items:center;gap:4px;font-weight:600;animation:.25s ease-out both fade-in;display:inline-flex}.page-message{text-align:center;color:var(--muted);padding:48px 16px}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;gap:12px;height:60px;display:flex}.brand{color:var(--text);align-items:center;gap:10px;font-size:1.1rem;font-weight:700;display:flex}.logo{align-items:center;gap:10px;display:inline-flex}.logo-mark{filter:drop-shadow(0 2px 4px #1f5eff40);flex-shrink:0;transition:transform .2s}.brand:hover .logo-mark{transform:rotate(-6deg)scale(1.05)}.logo-text{flex-direction:column;line-height:1.15;display:flex}.logo-name{letter-spacing:-.01em;color:var(--text);font-size:1.15rem;font-weight:500}.logo-name strong{color:var(--primary);font-weight:800}.logo-tagline{color:var(--muted);font-size:.8rem;font-weight:400}.topbar-nav{align-items:center;gap:8px;display:flex}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-weight:500;display:inline-flex}.btn:hover:not(:disabled){border-color:#b9c0cc}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-danger{color:var(--danger);border-color:#f0c4c4}.btn-small{padding:4px 10px;font-size:.85rem}.btn-block{width:100%}input,textarea,select{font:inherit;color:inherit;border:1px solid var(--border);background:#fff;border-radius:8px;width:100%;padding:9px 11px}input:focus,textarea:focus,select:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}textarea{resize:vertical}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field>span:first-child{color:#344054;font-size:.85rem;font-weight:600}.alert{border-radius:8px;margin:12px 0;padding:10px 12px}.alert-error{color:var(--danger);background:#fdecec}.hint{color:var(--muted);margin:8px 0 0;font-size:.85rem}.hint-info{background:var(--primary-soft);color:#1f4fd1;border-radius:8px;align-items:center;gap:6px;padding:7px 10px;animation:.25s ease-out both fade-in;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card-title{align-items:center;gap:8px;margin:0 0 16px;font-size:1.05rem;display:flex}.card-title svg{color:var(--primary)}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.header-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.total{font-size:1.1rem;font-weight:700}.back-link{color:var(--muted);align-items:center;gap:6px;margin-bottom:10px;transition:color .15s;display:inline-flex}.back-link:hover{color:var(--primary)}.back-link svg{transition:transform .15s}.back-link:hover svg{transform:translate(-3px)}.ws-title{letter-spacing:.02em;font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.toolbar{flex:1;justify-content:flex-end;align-items:center;gap:10px;max-width:720px;display:flex}.search-box{flex:1;min-width:0;position:relative}.search-box input{height:40px;padding-left:36px;padding-right:34px}.search-box input::-webkit-search-cancel-button{display:none}.search-icon{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.search-spinner,.search-clear{color:var(--muted);position:absolute;top:50%;right:10px;translate:0 -50%}.search-clear{cursor:pointer;background:#eef0f3;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;padding:0;display:flex}.search-clear:hover{color:var(--text);background:#e2e5ea}.count-pill{text-align:center;background:#00000012;border-radius:999px;min-width:22px;padding:0 7px;font-size:.78rem;font-weight:600}.dropdown{position:relative}.dropdown-trigger{height:40px}.dropdown-trigger.is-open{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.dropdown-label{text-overflow:ellipsis;max-width:190px;overflow:hidden}.dropdown-chevron{color:var(--muted);transition:transform .2s}.is-open .dropdown-chevron{transform:rotate(180deg)}.dropdown-menu{z-index:20;background:var(--surface);border:1px solid var(--border);transform-origin:100% 0;border-radius:12px;min-width:270px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #10182829}.dropdown-item{width:100%;font:inherit;text-align:left;cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.dropdown-item:hover{background:#f3f5f8}.dropdown-item.is-active{background:var(--primary-soft);font-weight:600}.dropdown-item-label{flex:1}.dropdown-icon{color:#475467;background:#eef0f3;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.dropdown-check{color:var(--primary);visibility:hidden}.dropdown-item.is-active .dropdown-check{visibility:visible}.tone-rogzitve{color:#475467;background:#eef0f3}.tone-elkuldve{color:#b54708;background:#fff3e0}.tone-visszajott{color:#1f4fd1;background:#e8efff}.tone-tesztelve{color:#6b2fd6;background:#f1e8ff}.tone-kiszolva{color:#0b7a7a;background:#e0f6f6}.tone-atvette{color:var(--success);background:#e6f6ec}.table-wrap{padding:0;transition:opacity .2s;overflow-x:auto}.table-wrap.is-loading{opacity:.55}.actions-cell{text-align:right;width:1%}.table{border-collapse:collapse;width:100%;min-width:820px}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:11px 14px}.table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#fafbfc;font-size:.78rem}.table tr:last-child td{border-bottom:none}.table .num{text-align:right;white-space:nowrap}.row-link{cursor:pointer}.row-link:hover{background:#f8faff}.ws-number{white-space:nowrap;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-weight:600}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:4px;padding:48px 16px;display:flex}.empty svg{color:#b9c0cc}.pagination{color:var(--muted);justify-content:center;align-items:center;gap:16px;margin-top:16px;display:flex}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.badge-rogzitve{color:#475467;background:#eef0f3}.badge-elkuldve{color:#b54708;background:#fff3e0}.badge-visszajott{color:#1f4fd1;background:#e8efff}.badge-tesztelve{color:#6b2fd6;background:#f1e8ff}.badge-kiszolva{color:#0b7a7a;background:#e0f6f6}.badge-atvette{color:var(--success);background:#e6f6ec}.form-section{border:none;min-width:0;margin:0 0 22px;padding:0}.form-section legend{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);align-items:center;gap:6px;margin-bottom:10px;padding:0;font-size:.8rem;font-weight:700;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.field-wide{grid-column:1/-1}.form-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:1px dashed #b9c0cc;border-radius:999px;padding:2px 10px;font-size:.8rem}.chip:hover{border-color:var(--primary);color:var(--primary)}.autocomplete{position:relative}.autocomplete-list{z-index:5;background:var(--surface);border:1px solid var(--border);border-radius:8px;margin:4px 0 0;padding:4px;list-style:none;position:absolute;top:100%;left:0;right:0;box-shadow:0 8px 24px #1018281f}.autocomplete-list button{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;align-items:flex-start;padding:7px 10px;display:flex}.autocomplete-list button:hover{background:var(--primary-soft)}.autocomplete-list span{color:var(--muted);font-size:.82rem}.modal-overlay{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a73;justify-content:center;align-items:flex-start;padding:5vh 16px;animation:.22s both overlay-in;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:16px;flex-direction:column;width:100%;max-width:820px;max-height:90vh;animation:.32s cubic-bezier(.16,1,.3,1) both modal-in;display:flex;overflow:hidden;box-shadow:0 24px 64px #0f172a47}.modal-overlay.is-closing{animation:.22s both overlay-out}.modal-overlay.is-closing .modal{animation:.22s both modal-out}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.modal-header h2{align-items:center;gap:10px;margin:0;font-size:1.15rem;display:flex}.modal-icon{background:var(--primary-soft);width:34px;height:34px;color:var(--primary);border-radius:10px;justify-content:center;align-items:center;display:flex}.modal-body{padding:20px;overflow-y:auto}.modal-body .form-actions{background:var(--surface);border-top:1px solid var(--border);margin:0 -20px -20px;padding:14px 20px;position:sticky;bottom:-20px}.modal .form-section,.modal .form-actions{animation:.4s cubic-bezier(.16,1,.3,1) both rise-in}.modal .form-section:first-of-type{animation-delay:80ms}.modal .form-section:nth-of-type(2){animation-delay:.14s}.modal .form-section:nth-of-type(3){animation-delay:.2s}.modal .form-actions{animation-delay:.26s}.icon-btn{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;transition:background .15s,color .15s,transform .15s;display:inline-flex}.icon-btn:hover{color:var(--text);background:#eef0f3}.modal-header .icon-btn:hover{transform:rotate(90deg)}@keyframes overlay-in{0%{opacity:0}}@keyframes overlay-out{to{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(24px)scale(.96)}}@keyframes modal-out{to{opacity:0;transform:translateY(12px)scale(.97)}}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)scale(.97)}}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}}@keyframes spin{to{transform:rotate(360deg)}}.pop-in{animation:.16s ease-out both pop-in}.fade-in{animation:.3s ease-out both fade-in}.spin{animation:.8s linear infinite spin}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}.detail-layout{grid-template-columns:minmax(280px,380px) 1fr;align-items:start;gap:20px;display:grid}.steps{margin:0 0 18px;padding:0;list-style:none}.step{grid-template-columns:28px 1fr;column-gap:10px;padding:6px 0;display:grid;position:relative}.step:not(:last-child):after{content:"";background:var(--border);width:2px;position:absolute;top:32px;bottom:-6px;left:13px}.step-done:not(:last-child):after{background:var(--primary)}.step-dot{width:28px;height:28px;color:var(--muted);background:#eef0f3;border-radius:50%;grid-row:span 2;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex}.step-done .step-dot{background:var(--primary);color:#fff}.step-current .step-dot{color:var(--primary);border:2px solid var(--primary);background:#fff}.step-label{align-self:center;align-items:center;min-height:28px;display:flex}.step-current .step-label{font-weight:700}.step-todo .step-label{color:var(--muted)}.step-date{color:var(--muted);grid-column:2;font-size:.8rem}.status-change{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:16px;display:flex}.status-buttons{flex-direction:column;gap:8px;display:flex}.history{margin-top:16px;font-size:.88rem}.history summary{cursor:pointer;color:var(--muted);align-items:center;gap:6px;display:flex}.history ul{flex-direction:column;gap:6px;margin:10px 0 0;padding:0;list-style:none;display:flex}.history li{flex-wrap:wrap;gap:6px;display:flex}.history-date{color:var(--muted);font-variant-numeric:tabular-nums}.history-note{color:var(--muted);font-style:italic}.danger-zone{justify-content:flex-end;margin-top:24px;display:flex}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{flex-direction:column;gap:14px;width:100%;max-width:360px;display:flex}.login-brand{font-size:inherit;margin:0 0 8px}.login-brand .logo-name{font-size:1.5rem}.print-page{padding:24px 16px}.print-toolbar{justify-content:space-between;gap:8px;max-width:210mm;margin:0 auto 16px;display:flex}.sheet{color:#000;max-width:210mm;box-shadow:var(--shadow);border:1px solid var(--border);background:#fff;margin:0 auto;padding:14mm}.sheet-header{border-bottom:3px solid #000;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;padding-bottom:10px;display:flex}.sheet-kicker{text-transform:uppercase;letter-spacing:.12em;align-items:center;gap:8px;font-size:.85rem;font-weight:700;display:flex}.sheet-number{word-break:break-all;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:2.4rem;font-weight:800;line-height:1.1}.sheet-date{text-align:right;flex-direction:column;font-size:.85rem;display:flex}.sheet-date strong{font-size:1.05rem}.sheet-table{border-collapse:collapse;width:100%}.sheet-table th,.sheet-table td{text-align:left;vertical-align:top;border:1px solid #000;padding:8px 10px}.sheet-table th{background:#f2f2f2;width:32%;font-weight:600}.pre{white-space:pre-wrap}.sheet-cut{white-space:nowrap;color:#777;margin:28px 0 16px;font-size:.8rem;overflow:hidden}.sheet-label{border:2px solid #000;padding:10px 14px;display:inline-block}.sheet-label .sheet-number{font-size:2rem}@page{size:A4;margin:12mm}@media print{html,body{background:#fff}.no-print{display:none!important}.print-page{padding:0}.sheet{box-shadow:none;border:none;max-width:none;padding:0}.sheet-table th{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media (max-width:860px){.detail-layout{grid-template-columns:1fr}}@media (max-width:600px){.form-grid{grid-template-columns:1fr}.toolbar{flex-wrap:wrap}.search-box{flex-basis:100%}.dropdown,.dropdown-trigger{width:100%}.dropdown-label{text-align:left;flex:1;max-width:none}.dropdown-menu{min-width:0;left:0}.hide-mobile{display:none}.modal-overlay{align-items:flex-end;padding:0}.modal{border-radius:16px 16px 0 0;max-height:94vh}@keyframes modal-in{0%{transform:translateY(100%)}}@keyframes modal-out{to{transform:translateY(100%)}}.page-header>*{width:100%}.brand>span:last-child{display:none}.sheet-number{font-size:1.8rem}}
