:root{--bg: #f4f5f7;--card: #ffffff;--ink: #1a1f29;--muted: #5a6473;--line: #e3e6ea;--brand: #3f48cc;--brand-dark: #333aa6;--brand-ink: #ffffff;--danger: #b3261e;--ok: #1f7a44;--subtle: var(--subtle);--chip-bg: #eef2f7;--input-bg: #ffffff;--header-bg: #0f1729;--header-line: #1f2940;--header-ink: #e7e9ef;--header-muted: #aeb6c4;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}[data-theme=dark]{--bg: #0e1421;--card: #161e2e;--ink: #e7e9ef;--muted: #9aa3b4;--line: #283246;--brand: #6b73e6;--brand-dark: #565fd6;--danger: #f1746b;--ok: #4cc38a;--subtle: #131a28;--chip-bg: #232d42;--input-bg: #0f1726}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}a{color:var(--brand)}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:56px;padding:0 1.25rem;background:var(--header-bg);border-bottom:1px solid var(--header-line);color:var(--header-ink)}.nav-left{display:flex;align-items:center;gap:1.5rem}.app-header .brand{display:flex;align-items:center;gap:.55rem;font-weight:700;text-decoration:none;color:#fff}.app-header .brand-logo{width:28px;height:28px;border-radius:6px;display:block}.nav-links{display:flex;align-items:center;gap:.25rem}.nav-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--header-muted);text-decoration:none;padding:.4rem .65rem;border-radius:8px;font-size:.92rem;font-weight:500}.nav-link:hover{color:#fff;background:#ffffff14}.nav-link.active{color:#fff;background:#ffffff1f}.nav-right{display:flex;align-items:center;gap:.35rem}.whats-new{display:inline-flex;align-items:center;gap:.35rem;color:var(--header-muted);text-decoration:none;font-size:.9rem;padding:.4rem .55rem;border-radius:8px}.whats-new:hover{color:#fff;background:#ffffff14}.icon-btn{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--header-muted);border:none;padding:.4rem;border-radius:8px;cursor:pointer}.icon-btn:hover{color:#fff;background:#ffffff14}.user-menu{position:relative}.user-btn{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:none;color:var(--header-ink);cursor:pointer;padding:.3rem .45rem;border-radius:8px;font-size:.9rem}.user-btn:hover{background:#ffffff14}.avatar{width:28px;height:28px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:.8rem;font-weight:700}.user-name{font-weight:500}.menu-dropdown{position:absolute;right:0;top:calc(100% + 8px);background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:10px;min-width:160px;box-shadow:0 8px 24px #0000002e;overflow:hidden;z-index:30}.menu-dropdown a,.menu-dropdown button{display:block;width:100%;text-align:left;padding:.6rem .9rem;background:transparent;border:none;color:var(--ink);text-decoration:none;font-size:.9rem;cursor:pointer;font-family:inherit}.menu-dropdown a:hover,.menu-dropdown button:hover{background:var(--subtle)}.container{max-width:720px;margin:2rem auto;padding:0 1rem}.container--wide{max-width:min(100%,1800px)}.center{min-height:100vh;display:grid;place-items:center;padding:1rem;background:linear-gradient(160deg,var(--subtle) 0%,var(--bg) 55%)}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.5rem;box-shadow:0 1px 2px #0000000a}.card.narrow{width:100%;max-width:380px}.card.narrow h1,.card.narrow .subtitle{text-align:center}.auth-logo{width:54px;height:54px;border-radius:11px;display:block;margin:0 auto 1rem;box-shadow:0 6px 18px #3f48cc4d}h1{font-size:1.5rem;margin:0 0 .25rem}.subtitle{color:var(--muted);margin:0 0 1.25rem}label{display:block;font-size:.85rem;font-weight:600;margin:.75rem 0 .25rem}input,select{width:100%;padding:.55rem .65rem;border:1px solid var(--line);border-radius:8px;font-size:.95rem;background:var(--input-bg);color:var(--ink)}button{cursor:pointer;border:none;border-radius:8px;padding:.55rem .9rem;font-size:.95rem;font-weight:600;color:inherit}button.primary{background:var(--brand);color:var(--brand-ink);width:100%;margin-top:1rem;transition:background .15s}button.primary:hover{background:var(--brand-dark)}button.primary:disabled{opacity:.6;cursor:progress}button.ghost{background:transparent;color:var(--brand);padding:.3rem .5rem}button.approve{background:var(--ok);color:#fff}button.reject{background:var(--card);color:var(--danger);border:1px solid var(--danger);margin-left:.5rem}.error{color:var(--danger);font-size:.9rem;margin-top:.75rem}.muted{color:var(--muted)}.row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:none}.switch-link{margin-top:1rem;font-size:.9rem}.badge{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.15rem .45rem;border-radius:999px;background:var(--chip-bg);color:var(--muted)}.admin-tabs{display:flex;gap:.25rem;margin-bottom:1rem;border-bottom:1px solid var(--line)}.admin-tabs .tab{padding:.5rem .9rem;text-decoration:none;color:var(--muted);border-bottom:2px solid transparent;font-weight:600;font-size:.9rem}.admin-tabs .tab.active{color:var(--brand);border-bottom-color:var(--brand)}.admin-links{display:flex;gap:1rem}.filter-tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--line);margin-bottom:.85rem}.filter-tab{background:transparent;border:none;border-radius:0;padding:.5rem .85rem;color:var(--muted);font-weight:600;font-size:.9rem;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;width:auto}.filter-tab:hover{color:var(--ink)}.filter-tab.active{color:var(--brand);border-bottom-color:var(--brand)}.filter-count{color:var(--muted);font-weight:500;font-size:.8rem}.filter-tab.active .filter-count{color:var(--brand)}.inline-form{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-top:1rem}.inline-form input,.inline-form select{width:auto;flex:1 1 140px;min-width:120px}button.secondary{background:var(--chip-bg);color:var(--ink)}button.small{padding:.35rem .7rem;font-size:.85rem;width:auto;margin:0}a.small{text-decoration:none}button.danger{background:var(--card);color:var(--danger);border:1px solid var(--danger)}.muted-sm{color:var(--muted);font-size:.85rem}.user-block{padding:.85rem 0;border-bottom:1px solid var(--line)}.user-block:last-child{border-bottom:none}.tag-list{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;background:var(--chip-bg);border-radius:999px;padding:.2rem .5rem}.chip-x{background:transparent;color:var(--muted);padding:0 .1rem;font-size:1rem;line-height:1;width:auto;margin:0}.chip-x:hover{color:var(--danger)}.exrow{border:1px solid var(--line);border-radius:10px;margin-top:.6rem;background:var(--card)}.exrow.open{box-shadow:0 1px 4px #0000000f}.exrow-head{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;background:transparent;padding:.8rem 1rem;cursor:pointer;border:none;border-radius:10px;font-size:1rem}.exrow-head:hover{background:var(--subtle)}.exrow-chevron{color:var(--muted);font-size:.75rem;transition:transform .15s}.exrow.open .exrow-chevron{transform:rotate(90deg)}.exrow-summary{flex:1;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.exrow-summary strong{font-weight:600;font-size:.95rem}.summary-meta{color:var(--muted);font-size:.85rem}.exrow-body{padding:.25rem 1rem 1rem 2.1rem;border-top:1px solid var(--line)}.afield{margin-top:.85rem}.afield-label{font-size:.82rem;font-weight:600;margin-bottom:.35rem}.afield-hint{font-weight:400;color:var(--muted)}.add-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-top:.45rem}.add-select{width:auto;max-width:240px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem 1rem;margin-bottom:.75rem}.created-box{margin-top:.75rem;padding:.75rem 1rem;background:#e6f4ea;border:1px solid #b7e0c4;border-radius:8px;font-size:.9rem}.created-box code{background:#0000000f;padding:.1rem .35rem;border-radius:4px}textarea{width:100%;padding:.55rem .65rem;border:1px solid var(--line);border-radius:8px;font-size:.95rem;font-family:inherit;resize:vertical;background:var(--input-bg);color:var(--ink)}.button-link{display:inline-block;text-decoration:none;background:var(--brand);color:#fff;padding:.45rem .8rem;border-radius:8px;font-weight:600;font-size:.9rem;transition:background .15s}.button-link:hover{background:var(--brand-dark)}.button-link.secondary{background:var(--chip-bg);color:var(--ink)}.button-link.secondary:hover{background:var(--line)}.ticket-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}.ticket-row:last-child{border-bottom:none}.ticket-row:hover strong{color:var(--brand)}.view-toggle{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.view-toggle button{display:inline-flex;align-items:center;gap:.3rem;padding:.4rem .7rem;background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:.85rem;font-weight:600}.view-toggle button+button{border-left:1px solid var(--line)}.view-toggle button.active{background:var(--brand);color:var(--brand-ink)}.kanban-board{display:flex;gap:.85rem;overflow-x:auto;padding:.25rem 0 .75rem;align-items:flex-start}.kanban-col{flex:1 1 200px;min-width:200px;background:var(--chip-bg);border-radius:10px;padding:.6rem;display:flex;flex-direction:column;gap:.55rem;max-height:72vh}.kanban-col-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.kanban-count{font-size:.72rem;font-weight:700;color:var(--muted)}.kanban-col-body{display:flex;flex-direction:column;gap:.5rem;overflow-y:auto}.kanban-card{display:block;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.55rem .65rem;text-decoration:none;color:inherit}.kanban-card:hover{border-color:var(--brand)}.kanban-card strong{display:block;font-size:.88rem;line-height:1.3;margin-bottom:.25rem}.kanban-card-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.4rem}.kanban-empty{color:var(--muted);font-size:.85rem;text-align:center;padding:.4rem 0}.prio{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.prio-low{color:#6b7689}.prio-medium{color:#3f6fb8}.prio-high{color:#b9821f}.prio-urgent{color:#c2342b}.ticket-ref{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}.status{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.15rem .5rem;border-radius:999px;background:var(--chip-bg);color:var(--muted)}.status-new{background:#e7f0fb;color:#1f5fa8}.status-triaged{background:#fff3e0;color:#9a6700}.status-assigned{background:#ede7f6;color:#5e35b1}.status-pending_approval{background:#fff3e0;color:#9a6700}.status-in_progress{background:#fff8e1;color:#a67c00}.status-resolved{background:#e6f4ea;color:#1f7a44}.status-closed{background:#eceff1;color:#546e7a}.contact-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.contact-tag{display:inline-block;font-size:.74rem;font-weight:600;padding:.15rem .55rem;border-radius:999px}.contact-tag.customer{background:#e7f0fb;color:#1f5fa8}.contact-tag.supplier{background:#fff3e0;color:#9a6700}.estimate-box{margin-top:1rem;padding:.75rem 1rem;background:var(--chip-bg);border-radius:8px}.estimate-grid{display:grid;grid-template-columns:auto 1fr;gap:.3rem 1.25rem;margin-top:.45rem}.action-block{padding:.25rem 0}.ticket-progress{display:flex;gap:.4rem;margin:0 0 1.1rem}.progress-step{flex:1;display:flex;flex-direction:column;gap:.3rem;min-width:0}.progress-bar{height:6px;border-radius:999px;background:var(--line);transition:background .2s}.progress-step.done .progress-bar,.progress-step.current .progress-bar{background:var(--accent)}.progress-step.current .progress-bar{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}.progress-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;text-align:center;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-step.done .progress-label{color:var(--ink)}.progress-step.current .progress-label{color:var(--accent);font-weight:700}.thumbs{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.thumbs img{width:96px;height:96px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.timeline{list-style:none;padding:0;margin:0}.timeline li{padding:.4rem 0;border-bottom:1px solid var(--line);font-size:.92rem}.timeline li:last-child{border-bottom:none}.stat-grid{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}.stat{flex:1 1 120px;display:flex;flex-direction:column;gap:.15rem;padding:.9rem 1rem;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit;background:var(--subtle)}.stat:hover{border-color:var(--brand)}.stat-num{font-size:1.6rem;font-weight:700}.stat-label{font-size:.8rem;color:var(--muted)}.comment{padding:.6rem 0;border-bottom:1px solid var(--line)}.comment:last-of-type{border-bottom:none}.comment.internal{background:#fffbea;border-left:3px solid #e0c200;padding-left:.6rem;border-radius:4px}.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.filters .search{flex:2 1 200px}.filters select{flex:1 1 120px;width:auto}.app-footer{display:flex;justify-content:center;align-items:center;gap:.75rem;padding:1.5rem 1rem 2rem}.app-footer a{text-decoration:none}.app-footer a:hover{color:var(--brand-dark)}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;margin-top:1rem}.feature{display:flex;flex-direction:column;gap:.2rem;padding:.9rem 1rem;border:1px solid var(--line);border-radius:10px;background:var(--subtle)}.changelog{list-style:none;padding:0;margin:0}.changelog>li{padding:1rem 0;border-bottom:1px solid var(--line)}.changelog>li:last-child{border-bottom:none}.changelog-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.4rem}.changelog ul{margin:.2rem 0 0;padding-left:1.2rem}.changelog ul li{padding:.1rem 0;font-size:.92rem}@media (max-width: 640px){.container{margin:1rem auto}.card{padding:1.1rem;border-radius:10px}h1{font-size:1.3rem}.app-header{padding:0 .85rem}.nav-left{gap:.85rem}.nav-link{padding:.4rem .45rem}.whats-new,.user-name{display:none}.row{flex-wrap:wrap}.ticket-row{gap:.5rem}.stat{flex-basis:100%;flex-direction:row;align-items:baseline;gap:.5rem}.filters .search,.filters select{flex-basis:100%}}
