:root{--red:#e21f26;--red-dark:#b8191f;--peach:#fdecec;--peach-subtle:#fef7f7;--ink:#0e0e10;--ink-950:#08080a;--ink-900:#0e0e10;--ink-800:#26262a;--ink-700:#3d414b;--ink-500:#6b7280;--ink-300:#b6bac2;--ink-200:#d6d9e0;--ink-100:#eae7e5;--ink-50:#f6f4f2;--black:#000;--white:#fff;--line:#eae7e5;--line-strong:#d8d4d0;--bg:#fff;--bg-soft:#f6f4f2;--green:#10b981;--green-bg:#ecfdf5;--amber:#f59e0b;--amber-bg:#fffbeb;--r-xs:8px;--r-sm:16px;--r-md:24px;--r-lg:32px;--ease:cubic-bezier(.5, .05, .1, 1);--container:1240px;--font:"Inter Tight", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--logo:url(/assets/logo/pulitech-logo-red.png);--shadow-sm:0 2px 8px #0e0e100a;--shadow-soft:0 18px 50px -22px #14161c1f;--shadow-lg:0 24px 60px -18px #0e0e1029}*{box-sizing:border-box}a{color:inherit;text-decoration:none}body{font-family:var(--font);color:var(--ink-900);background:var(--bg);-webkit-font-smoothing:antialiased;line-height:1.55;overflow-x:hidden}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px}.auth-page-wrap{z-index:1;justify-content:center;align-items:center;min-height:85vh;padding:4rem 1.5rem;display:flex;position:relative}.auth-card{border:1px solid var(--line);border-radius:var(--r-md);width:100%;max-width:480px;box-shadow:var(--shadow-soft);background:#fff;padding:38px 34px}.auth-header{text-align:center;margin-bottom:28px}.auth-logo{background:var(--logo) center center/contain no-repeat;width:130px;height:44px;margin-bottom:18px;display:inline-block}.auth-header h1{letter-spacing:-.02em;color:var(--ink-900);margin:0 0 8px;font-size:1.75rem;font-weight:700}.auth-header p{color:var(--ink-500);margin:0;font-size:.92rem}.auth-tabs{background:var(--ink-50);border:1px solid var(--line);border-radius:999px;margin-bottom:24px;padding:4px;display:flex}.auth-tab-btn{color:var(--ink-500);cursor:pointer;transition:all .2s var(--ease);background:0 0;border:none;border-radius:999px;flex:1;padding:9px 16px;font-family:inherit;font-size:.88rem;font-weight:600}.auth-tab-btn.active{color:var(--ink-900);background:#fff;box-shadow:0 2px 6px #0000000f}.auth-form{flex-direction:column;gap:16px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-700);font-size:.84rem;font-weight:700}.form-group input,.form-group select,.form-group textarea{width:100%;color:var(--ink-900);background:var(--ink-50);border:1.5px solid var(--line);border-radius:var(--r-sm);transition:all .2s var(--ease);outline:none;padding:12px 16px;font-family:inherit;font-size:.95rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--red);box-shadow:0 0 0 4px var(--peach);background:#fff}.form-help{color:var(--ink-500);font-size:.78rem}.auth-submit-btn{background:var(--ink-900);color:#fff;cursor:pointer;border:none;border-radius:999px;width:100%;margin-top:10px;padding:14px;font-family:inherit;font-size:.95rem;font-weight:700;transition:background .3s,transform .2s}.auth-submit-btn:hover{background:var(--red);transform:translateY(-1px)}.auth-submit-btn:disabled{opacity:.6;cursor:not-allowed}.auth-alert-error{background:var(--peach);border-radius:var(--r-xs);color:var(--red-dark);border:1px solid #e21f2633;align-items:center;gap:8px;padding:12px 16px;font-size:.88rem;font-weight:500;display:flex}.auth-alert-success{background:var(--green-bg);border-radius:var(--r-xs);color:#065f46;border:1px solid #10b98133;align-items:center;gap:8px;padding:12px 16px;font-size:.88rem;font-weight:500;display:flex}.auth-footer-links{text-align:center;color:var(--ink-500);margin-top:24px;font-size:.88rem}.auth-footer-links a{color:var(--red);font-weight:600}.auth-footer-links a:hover{text-decoration:underline}.portal-nav-bar{border-bottom:1px solid var(--line);z-index:50;-webkit-backdrop-filter:blur(12px);background:#fff;position:sticky;top:0}.portal-nav-inner{justify-content:space-between;align-items:center;height:70px;display:flex}.portal-user-chip{align-items:center;gap:12px;display:flex}.portal-user-badge{text-align:right;flex-direction:column;display:flex}.portal-user-name{color:var(--ink-900);font-size:.9rem;font-weight:700}.portal-user-role{color:var(--ink-500);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}.portal-logout-btn{border:1px solid var(--line);background:var(--ink-50);color:var(--ink-700);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:7px 14px;font-family:inherit;font-size:.82rem;font-weight:600;transition:all .2s;display:inline-flex}.portal-logout-btn:hover{background:var(--peach);color:var(--red);border-color:var(--red)}.date-presets-bar{border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow-sm);background:#fff;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:1.5rem;padding:12px 18px;display:flex}.date-presets-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-500);margin-right:6px;font-size:.8rem;font-weight:700}.date-preset-btn{background:var(--ink-50);border:1px solid var(--line);color:var(--ink-700);cursor:pointer;transition:all .2s var(--ease);border-radius:999px;padding:6px 14px;font-family:inherit;font-size:.84rem;font-weight:600}.date-preset-btn:hover{border-color:var(--ink-300);color:var(--ink-900)}.date-preset-btn.active{background:var(--ink-900);color:#fff;border-color:var(--ink-900)}.custom-date-inputs{align-items:center;gap:8px;margin-left:auto;display:flex}.custom-date-inputs input[type=date]{border:1px solid var(--line);background:var(--ink-50);color:var(--ink-800);border-radius:8px;outline:none;padding:6px 10px;font-family:inherit;font-size:.82rem}.custom-date-inputs input[type=date]:focus{border-color:var(--red);background:#fff}.admin-view-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.admin-action-btn{background:var(--red);color:#fff;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:8px;padding:11px 22px;font-family:inherit;font-size:.9rem;font-weight:700;transition:background .25s,transform .2s;display:inline-flex;box-shadow:0 4px 14px #e21f2640}.admin-action-btn:hover{background:var(--red-dark);transform:translateY(-1px)}.admin-client-table-wrap{border-radius:var(--r-md);border:1px solid var(--line);box-shadow:var(--shadow-soft);background:#fff;margin-top:1rem;overflow:hidden}.admin-client-table{border-collapse:collapse;text-align:left;width:100%;font-size:.92rem}.admin-client-table th{background:var(--ink-50);color:var(--ink-700);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--line);padding:14px 20px;font-size:.78rem;font-weight:700}.admin-client-table td{border-bottom:1px solid var(--line);color:var(--ink-800);vertical-align:middle;padding:16px 20px}.admin-client-table tr:last-child td{border-bottom:none}.admin-client-table tr:hover{background:#faf9f8}.table-btn{border:1px solid var(--line);color:var(--ink-800);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:4px;padding:6px 12px;font-family:inherit;font-size:.78rem;font-weight:600;transition:all .2s;display:inline-flex}.table-btn:hover{border-color:var(--red);color:var(--red)}.table-btn.danger:hover{color:#b91c1c;background:#fee2e2;border-color:#ef4444}.otp-display-badge{background:var(--peach);color:var(--red-dark);border:1px solid #e21f2633;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-family:monospace;font-size:.9rem;font-weight:700;display:inline-flex}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0000008c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{border-radius:var(--r-md);box-shadow:var(--shadow-lg);background:#fff;width:100%;max-width:580px;max-height:90vh;padding:32px;position:relative;overflow-y:auto}.modal-close-btn{background:var(--ink-50);cursor:pointer;width:32px;height:32px;color:var(--ink-500);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:20px;right:20px}.modal-close-btn:hover{background:var(--ink-100);color:var(--ink-900)}.jobs-checkbox-list{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--ink-50);flex-direction:column;gap:6px;max-height:220px;padding:8px;display:flex;overflow-y:auto}.job-checkbox-item{cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:.88rem;font-weight:500;transition:background .2s;display:flex}.job-checkbox-item:hover{background:var(--peach-subtle)}.job-checkbox-item input{accent-color:var(--red);width:16px;height:16px}.lang{background:var(--ink-50);border:1px solid var(--line);border-radius:999px;align-items:center;gap:2px;padding:3px;display:inline-flex}.lang button{cursor:pointer;color:var(--ink-500);transition:all .2s var(--ease);background:0 0;border:0;border-radius:999px;padding:4px 10px;font-family:inherit;font-size:.8rem;font-weight:700}.lang button:hover{color:var(--ink-900)}.lang button.active,.lang button.on{background:var(--ink-900);color:#fff}[data-en]{display:none}html[lang=en] [data-en]{display:revert}html[lang=en] [data-de]{display:none!important}.req-modal-overlay{z-index:9999;-webkit-backdrop-filter:blur(6px);animation:reqFadeIn .22s var(--ease);background:#0e0e10ad;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}@keyframes reqFadeIn{0%{opacity:0}to{opacity:1}}.req-modal-container{border-radius:var(--r-md);border:1px solid var(--line);width:100%;max-width:620px;max-height:92vh;animation:reqScaleUp .22s var(--ease);background:#fff;padding:32px 28px;position:relative;overflow-y:auto;box-shadow:0 24px 60px -12px #0e0e1047}@keyframes reqScaleUp{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.req-modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;margin-bottom:22px;padding-bottom:16px;display:flex}.req-modal-title-wrap{align-items:center;gap:14px;display:flex}.req-modal-icon{background:var(--peach);width:44px;height:44px;color:var(--red);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.req-modal-title{letter-spacing:-.02em;color:var(--ink-900);margin:0 0 3px;font-size:1.35rem;font-weight:700}.req-modal-subtitle{color:var(--ink-500);margin:0;font-size:.84rem}.req-modal-close-btn{border:1px solid var(--line);background:var(--ink-50);width:34px;height:34px;color:var(--ink-500);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:flex}.req-modal-close-btn:hover{background:var(--ink-100);color:var(--ink-900)}.req-modal-form{flex-direction:column;display:flex}.req-error-banner{color:#b91c1c;border-radius:var(--r-xs);background:#fef2f2;border:1px solid #fecaca;align-items:center;gap:10px;margin-bottom:18px;padding:10px 14px;font-size:.88rem;font-weight:500;display:flex}.req-form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (max-width:600px){.req-form-grid{grid-template-columns:1fr}}.req-field-group{margin-bottom:16px}.req-label-with-hint{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.req-field-label{color:var(--ink-800);margin-bottom:6px;font-size:.86rem;font-weight:600;display:block}.req-required{color:var(--red)}.req-field-hint{color:var(--red);font-size:.74rem;font-weight:600}.req-input-text,.req-input-select,.req-input-textarea{width:100%;color:var(--ink-900);border:1.5px solid var(--line-strong);border-radius:var(--r-xs);background:#fff;padding:10px 13px;font-family:inherit;font-size:.92rem;transition:border-color .15s,box-shadow .15s}.req-input-text:focus,.req-input-select:focus,.req-input-textarea:focus{border-color:var(--red);outline:none;box-shadow:0 0 0 3px #e21f261f}.req-priority-pills{gap:6px;display:flex}.req-priority-pill{border-radius:var(--r-xs);cursor:pointer;border:1.5px solid var(--line);color:var(--ink-700);background:#fff;flex:1;justify-content:center;align-items:center;gap:5px;padding:8px 6px;font-size:.78rem;font-weight:600;transition:all .15s;display:flex}.req-priority-pill .prio-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.req-prio-lowest.active{background:var(--ink-100);border-color:var(--ink-500);color:var(--ink-900)}.req-prio-low.active{color:#065f46;background:#ecfdf5;border-color:#10b981}.req-prio-high.active{color:#92400e;background:#fffbeb;border-color:#f59e0b}.req-prio-highest.active{background:var(--peach);border-color:var(--red);color:var(--red-dark)}.req-drop-zone{border:2px dashed var(--line-strong);border-radius:var(--r-xs);text-align:center;background:var(--ink-50);cursor:pointer;color:var(--ink-500);padding:20px 16px;transition:all .15s}.req-drop-zone:hover{background:var(--peach-subtle);border-color:var(--red);color:var(--ink-800)}.req-drop-text{margin-top:6px;font-size:.88rem}.req-drop-text .bold{color:var(--red);font-weight:600}.req-drop-sub{color:var(--ink-500);margin-top:2px;font-size:.74rem}.req-file-chips-list{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.req-file-chip{background:var(--ink-100);color:var(--ink-900);border-radius:6px;align-items:center;gap:6px;padding:5px 10px;font-size:.78rem;display:inline-flex}.req-file-chip .file-name{text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-weight:500;overflow:hidden}.req-file-chip .file-size{color:var(--ink-500);font-size:.72rem}.req-file-chip .file-remove-btn{color:var(--ink-500);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:1rem;line-height:1}.req-file-chip .file-remove-btn:hover{color:var(--red)}.req-modal-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:12px;margin-top:20px;padding-top:16px;display:flex}.req-submit-btn{background:var(--red)!important;color:#fff!important;cursor:pointer!important;transition:all .2s var(--ease)!important;border:none!important;border-radius:999px!important;align-items:center!important;gap:8px!important;padding:10px 22px!important;font-weight:600!important;display:inline-flex!important}.req-submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px #e21f2647;background:var(--red-dark)!important}.req-submit-btn:disabled{opacity:.65;cursor:not-allowed}.btn-spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite reqSpin;display:inline-block}@keyframes reqSpin{to{transform:rotate(360deg)}}.req-success-card{text-align:center;padding:24px 12px 12px}.req-success-icon-wrap{background:#ecfdf5;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:16px;display:inline-flex}.req-success-icon-wrap svg{width:32px;height:32px}.req-success-title{color:var(--ink-900);margin:0 0 8px;font-size:1.35rem;font-weight:700}.req-success-desc{color:var(--ink-500);max-width:440px;margin:0 auto 20px;font-size:.92rem;line-height:1.5}.req-ticket-badge{background:var(--ink-50);border:1px solid var(--line);border-radius:999px;align-items:center;gap:10px;padding:8px 16px;font-size:.9rem;display:inline-flex}.req-ticket-label{color:var(--ink-500)}.req-ticket-link{color:var(--red);text-underline-offset:3px;align-items:center;gap:5px;font-weight:700;text-decoration:underline;display:inline-flex}.req-ticket-link:hover{color:var(--red-dark)}
