:root{--bg: #f4f5f7;--surface: #ffffff;--border: #dfe1e6;--text: #1b1b1b;--text-muted: #6b778c;--primary: #fe5200;--primary-dark: #c74400;--danger: #c9372c;--s-waiting_approval: #b25e00;--s-waiting: #6b778c;--s-in_progress: #0b5fff;--s-interrupted: #c9372c;--s-on_hold: #c9372c;--s-ended: #216e4e;--p-unpaid: #c9372c;--p-partially_invoiced: #7a4de0;--p-invoiced: #b25e00;--p-paid: #216e4e;--radius: 8px;--shadow: 0 1px 2px rgba(9, 30, 66, .15);--shadow-lg: 0 8px 24px rgba(9, 30, 66, .24)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}h1{font-size:20px;margin:0}h2{font-size:13px;margin:0}h3{font-size:14px;margin:0 0 8px}.muted{color:var(--text-muted)}.centered{text-align:center;padding:48px}.error{color:var(--danger);background:#ffeceb;border:1px solid #ffbdad;border-radius:var(--radius);padding:8px 12px;margin:8px 0}.btn{font:inherit;border-radius:var(--radius);border:1px solid transparent;padding:6px 12px;cursor:pointer;background:transparent;color:var(--text)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--primary-dark)}.btn--ghost{border-color:var(--border);background:var(--surface)}.btn--ghost:hover:not(:disabled){background:#ebecf0}.btn--danger{background:var(--danger);color:#fff}.btn--link{color:var(--primary);padding:0 4px;text-decoration:underline;font-size:12px}.nav{display:flex;align-items:center;gap:16px;padding:10px 20px;background:var(--surface);border-bottom:1px solid var(--border)}.brand{display:inline-flex;align-items:center;gap:8px}.brand__logo{height:30px;width:auto;display:block}.brand__word{font-weight:700;font-size:20px;letter-spacing:.02em;color:var(--text)}.brand__word-lead{font-size:1.4em}.langtoggle{display:inline-flex;border:1px solid var(--border);border-radius:999px;overflow:hidden;background:var(--surface)}.langtoggle__btn{font:inherit;font-size:11px;font-weight:700;letter-spacing:.04em;padding:3px 10px;border:0;background:transparent;color:var(--text-muted);cursor:pointer}.langtoggle__btn:hover:not(.langtoggle__btn--on){background:#ebecf0}.langtoggle__btn--on{background:var(--primary);color:#fff}.bell{position:relative}.bell__button{position:relative;border:1px solid var(--border);background:var(--surface);border-radius:999px;width:30px;height:30px;font-size:15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.bell__button:hover{background:#ebecf0}.bell__badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 3px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center}.bell__panel{position:absolute;top:calc(100% + 8px);right:0;width:320px;max-height:420px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:60}.bell__panel-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}.bell__panel-head strong{font-size:13px;margin-right:auto}.bell__empty{padding:16px 12px;margin:0}.bell__list{list-style:none;margin:0;padding:0}.bell__item{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:10px 12px;border:0;border-bottom:1px solid var(--border);background:transparent;font:inherit;cursor:pointer}.bell__list li:last-child .bell__item{border-bottom:0}.bell__item:hover{background:#f4f5f7}.bell__item--unread{background:#fff7f5}.bell__item--unread:hover{background:#ffeee9}.bell__item-job{font-weight:600;font-size:12px}.bell__item-msg{font-size:12px;color:var(--text-muted)}.bell__item-time{font-size:11px;color:var(--text-muted)}.nav__spacer{flex:1}.nav__user{color:var(--text-muted);display:flex;align-items:center;gap:6px}.nav a{color:var(--text-muted);text-decoration:none;padding:4px 8px;border-radius:var(--radius)}.nav a:hover{background:#ebecf0}.nav a.active{color:var(--primary);background:#e6efff;font-weight:600}.page{padding:20px}.page__head{display:flex;align-items:center;gap:16px;margin-bottom:12px}.page__summary{color:var(--text-muted);margin-left:auto}.page__warn{color:var(--p-unpaid)}.filters{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-bottom:16px}.filters__row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.filters__row--chips{margin-top:10px;gap:16px}.filters__search{flex:1 1 260px}.filters__dash{color:var(--text-muted)}.filters input,.filters select,.form input,.form select,.form textarea,.notes__form textarea,.modal__controls select{font:inherit;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text)}.chipset{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.chipset__label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.chip{font:inherit;font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer}.chip--on{background:var(--primary);border-color:var(--primary);color:#fff}.chip--unpaid.chip--on{background:var(--p-unpaid);border-color:var(--p-unpaid)}.chip--partially_invoiced.chip--on{background:var(--p-partially_invoiced);border-color:var(--p-partially_invoiced)}.chip--invoiced.chip--on{background:var(--p-invoiced);border-color:var(--p-invoiced)}.chip--paid.chip--on{background:var(--p-paid);border-color:var(--p-paid)}.chip:disabled{opacity:.6;cursor:default}.chippicker__title{margin:0 0 8px;font-size:13px}.chippicker__controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.chippicker__pick{flex:0 0 auto}.chippicker__add{display:flex;gap:8px;flex:1;min-width:200px}.chippicker__add input{flex:1}.chippicker__hint{font-size:11px;margin:6px 0 0}.chip--removable{cursor:pointer}.chip--removable:hover:not(:disabled){background:var(--primary-dark);border-color:var(--primary-dark)}.quick{margin-bottom:12px}.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);gap:12px;align-items:start;overflow-x:auto;padding-bottom:12px}.column{background:#ebecf0;border-radius:var(--radius);padding:8px;min-height:200px;border-top:3px solid var(--s-waiting)}.column--waiting_approval{border-top-color:var(--s-waiting_approval)}.column--waiting{border-top-color:var(--s-waiting)}.column--in_progress{border-top-color:var(--s-in_progress)}.column--interrupted{border-top-color:var(--s-interrupted)}.column--on_hold{border-top-color:var(--s-on_hold)}.column--ended{border-top-color:var(--s-ended)}.column--over{background:#ffe6d9;outline:2px dashed var(--primary)}.column__header{display:flex;align-items:center;gap:8px;padding:4px 6px 10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.column__count{margin-left:auto;background:#dfe1e6;border-radius:999px;padding:0 8px;font-size:12px}.column__cards{display:flex;flex-direction:column;gap:8px}.column__empty{color:var(--text-muted);font-size:12px;padding:8px 6px}.card{position:relative;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;cursor:grab;touch-action:none}.card:active{cursor:grabbing}.card__unread-dot{position:absolute;top:6px;right:6px;width:10px;height:10px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 2px #fff;z-index:1}.card--dragging{box-shadow:var(--shadow-lg);transform:rotate(2deg);width:260px}.card__photo{display:block;width:100%;height:110px;object-fit:cover;background:#dfe1e6}.card__photo--empty{height:6px;background:linear-gradient(90deg,#dfe1e6,#ebecf0)}.card__body{padding:8px 10px 10px}.card__title{font-size:14px;margin:0 0 2px}.card__address{margin:0 0 6px;font-size:12px;color:var(--text-muted)}.card__badges{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.card__dates{display:flex;gap:14px;margin:0;font-size:12px}.card__dates dt{color:var(--text-muted);font-size:11px}.card__dates dd{margin:0}.card__assignee{margin:6px 0 0;font-size:12px;color:var(--text-muted)}.badge{display:inline-block;font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;border:1px solid currentColor;white-space:nowrap}.badge--unpaid{color:var(--p-unpaid);background:#ffeceb}.badge--partially_invoiced{color:var(--p-partially_invoiced);background:#f1ebfc}.badge--invoiced{color:var(--p-invoiced);background:#fff4e5}.badge--paid{color:var(--p-paid);background:#e3fcef}.badge--waiting_approval{color:var(--s-waiting_approval);background:#fff4e5}.badge--waiting{color:var(--s-waiting);background:#ebecf0}.badge--in_progress{color:var(--s-in_progress);background:#e6efff}.badge--interrupted{color:var(--s-interrupted);background:#ffeceb}.badge--on_hold{color:var(--s-on_hold);background:#ffeceb}.badge--ended{color:var(--s-ended);background:#e3fcef}.badge--role{color:var(--primary);background:#e6efff}.badge--main{color:var(--s-ended);background:#e3fcef}.badge--ticket-open{color:var(--s-waiting_approval);background:#fff4e5}.badge--ticket-done{color:var(--s-ended);background:#e3fcef}.modal__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#091e428a;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;z-index:50}.modal{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:min(860px,100%)}.modal__header{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}.modal__title{display:flex;align-items:center;gap:10px}.modal__name{font-size:18px;font-weight:700}.modal__close{margin-left:auto;border:0;background:transparent;font-size:24px;line-height:1;cursor:pointer;color:var(--text-muted)}.modal__body{padding:16px 20px}.modal__footer{padding:12px 20px;border-top:1px solid var(--border)}.modal__controls{display:flex;gap:16px;margin-bottom:16px}.modal__controls label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}.modal__section{border-top:1px solid var(--border);padding-top:14px;margin-top:14px}.modal__section-head{display:flex;align-items:center;gap:8px}.modal__section-head h3{margin-bottom:8px}.modal__panel>.modal__section:first-child,.modal__panel>.modal__controls:first-child{border-top:0;margin-top:0;padding-top:4px}.modal__tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:4px}.tab{border:0;background:transparent;padding:8px 14px;margin-bottom:-1px;font:inherit;font-weight:600;color:var(--text-muted);border-bottom:2px solid transparent;cursor:pointer}.tab:hover{color:var(--text)}.tab--active{color:var(--primary);border-bottom-color:var(--primary)}.details{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 16px;margin:0}.details dt{font-size:11px;text-transform:uppercase;color:var(--text-muted)}.details dd{margin:0}.details__wide{grid-column:1 / -1;white-space:pre-wrap}.form--grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 16px}.form label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}.form__wide{grid-column:1 / -1}.notes__form{display:flex;gap:8px;align-items:flex-start;margin-bottom:12px}.notes__form textarea{flex:1;resize:vertical}.notes__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.note{border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px}.note--new{animation:note-glow 1s ease-in-out 2;border-color:var(--danger)}@keyframes note-glow{0%,to{background:var(--surface)}50%{background:#ffebe9}}.note__header{display:flex;align-items:baseline;gap:8px;font-size:12px}.note__time{color:var(--text-muted)}.note__header .btn--link{margin-left:auto}.note__text{margin:4px 0 0;white-space:pre-wrap}.gallery__actions{display:flex;align-items:center;gap:10px;margin-bottom:10px}.gallery__heading{margin:16px 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.gallery__heading:first-of-type{margin-top:2px}.gallery__pending{border:1px dashed var(--border);border-radius:var(--radius);padding:8px 10px;margin-bottom:12px}.gallery__pending-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.gallery__pending-head strong{font-size:12px;margin-right:auto}.gallery__pending-list{list-style:none;margin:0;padding:0;font-size:13px;display:flex;flex-direction:column;gap:2px}.gallery__pending-list li{display:flex;align-items:center;gap:8px}.gallery__pending-list .btn--link{margin-left:auto;font-size:18px;line-height:1}.btn--sm{padding:4px 10px;font-size:12px}.gallery__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.thumb{margin:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.thumb img{width:100%;height:110px;object-fit:cover;display:block}.thumb figcaption{padding:6px 8px;display:flex;flex-direction:column;gap:2px;font-size:11px}.thumb__name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thumb__meta{color:var(--text-muted)}.thumb__buttons{display:flex;align-items:center;gap:6px}.gallery__files{list-style:none;margin:10px 0 0;padding:0;font-size:13px}.timeline{list-style:none;margin:0;padding:0 0 0 4px}.timeline__item{position:relative;padding:0 0 14px 20px;border-left:2px solid var(--border)}.timeline__item:last-child{border-left-color:transparent;padding-bottom:0}.timeline__dot{position:absolute;left:-7px;top:3px;width:12px;height:12px;border-radius:50%;background:var(--s-waiting);border:2px solid var(--surface)}.timeline__item--waiting_approval .timeline__dot{background:var(--s-waiting_approval)}.timeline__item--in_progress .timeline__dot{background:var(--s-in_progress)}.timeline__item--interrupted .timeline__dot{background:var(--s-interrupted)}.timeline__item--on_hold .timeline__dot{background:var(--s-on_hold)}.timeline__item--ended .timeline__dot{background:var(--s-ended)}.timeline__content{display:flex;flex-direction:column}.timeline__meta{font-size:12px;color:var(--text-muted)}.table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.table th,.table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}.table th{font-size:11px;text-transform:uppercase;color:var(--text-muted)}.table tbody tr:last-child td{border-bottom:0}.table__row{cursor:pointer}.table__row:hover{background:#f4f5f7}.table__thumb{width:56px}.table__thumb img{width:44px;height:32px;object-fit:cover;border-radius:4px;display:block}.table__thumb--empty{display:block;width:44px;height:32px;border-radius:4px;background:#ebecf0}.table__unread-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--danger);margin-right:6px;vertical-align:middle}.pager{display:flex;align-items:center;gap:12px;margin-top:12px}.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth__card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px;width:min(380px,100%);display:flex;flex-direction:column;gap:10px}.auth__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.auth__head .brand__logo{height:40px}.auth__head .brand__word{font-size:24px}.auth__card label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}.auth__card input{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius)}@media(max-width:720px){.details,.form--grid{grid-template-columns:1fr}.board{grid-auto-columns:85vw}}
