:root{--ink:#173236;--muted:#748487;--line:#dbe2de;--paper:#f5f7f3;--white:#fff;--mint:#d8f3e7;--accent:#168464;--danger:#b6453e;--warn:#f7e9bd;--blue:#e6efff;--shadow:0 18px 55px #17323620;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.hidden{display:none!important}.app{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:22px 16px;background:#173236;color:#f5fffb;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 26px}.brand strong,.brand small{display:block}.brand small{opacity:.62;margin-top:3px}.logo{width:42px;height:42px;border-radius:13px;background:#bdebd8;color:#173236;display:grid;place-items:center;font-weight:900}.sidebar nav{display:grid;gap:6px}.sidebar nav button{border:0;background:transparent;color:inherit;padding:13px 14px;border-radius:12px;text-align:left;display:flex;gap:12px;align-items:center;font-weight:650}.sidebar nav button.active,.sidebar nav button:hover{background:#ffffff18}.sidebar nav b{margin-left:auto;background:#ffda83;color:#173236;border-radius:999px;padding:2px 7px;font-size:12px}.profile{margin-top:auto;border-top:1px solid #ffffff22;padding:18px 6px 0;display:flex;gap:10px;align-items:center}.profile>span{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#173236;font-weight:800}.profile div{flex:1}.profile strong,.profile small{display:block}.profile small{opacity:.65}.profile button{border:0;background:transparent;color:#fff;font-size:22px}main{min-width:0}.topbar{position:sticky;top:0;z-index:5;background:#f5f7f3ee;backdrop-filter:blur(18px);padding:24px 30px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:end;gap:20px}.topbar small{color:var(--muted);text-transform:capitalize}.topbar h1{margin:3px 0 0;font-size:29px}.top-actions{display:flex;align-items:end;gap:10px}.scope{display:grid;gap:4px;font-size:12px;color:var(--muted)}select,input,textarea{border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px 12px;outline:none}select:focus,input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #16846418}.search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:11px;padding-left:11px}.search input{border:0;padding-left:0;min-width:230px}.content{padding:24px 30px 90px}.primary,.secondary,.danger,.ghost{border:0;border-radius:10px;padding:11px 15px;font-weight:750}.primary{background:var(--ink);color:#fff}.secondary{background:#e9eeea}.danger{background:#ffe7e3;color:#9a2e29}.ghost{background:transparent;border:1px solid var(--line)}.wide{width:100%}.view-head,.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.view-head h2,.section-head h3{margin:0}.tabs{display:flex;gap:7px;overflow:auto;margin:16px 0}.tabs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 13px;white-space:nowrap}.tabs button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.queue{display:grid;gap:10px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px 18px;display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(200px,1fr) auto;gap:20px;align-items:center;transition:.15s}.card:hover{transform:translateY(-1px);box-shadow:0 8px 28px #17323612;border-color:#adc5bc}.card h3,.card p{margin:0 0 6px}.card p,.card small{color:var(--muted)}.card-side{text-align:right;min-width:110px}.pills{display:flex;flex-wrap:wrap;gap:6px}.pill{display:inline-flex;border-radius:999px;background:#eaf0ec;padding:4px 8px;font-size:12px}.pill.urgent{background:#ffe6e2;color:#a73932}.pill.wait{background:var(--warn)}.pill.order{background:var(--blue)}.empty{background:#fff;border:1px dashed #b9c5bf;border-radius:18px;padding:50px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--ink);font-size:18px;margin-bottom:8px}.group-title{margin:26px 0 10px}.mobile-nav{display:none}.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#173236,#2a5d5b)}.login-card{width:min(440px,100%);background:#fff;border-radius:24px;padding:34px;box-shadow:var(--shadow)}.login-card small{color:var(--muted);display:block;margin-top:18px}.login-card h1{margin:8px 0}.login-card p{color:var(--muted)}.login-card label{display:grid;gap:6px;margin:14px 0}.error{color:var(--danger);min-height:22px}.toasts{position:fixed;right:20px;bottom:20px;z-index:80;display:grid;gap:8px}.toast{background:#173236;color:#fff;padding:12px 15px;border-radius:12px;box-shadow:var(--shadow)}.toast.error{background:#992f2a}dialog{border:0;padding:0;background:#fff;color:var(--ink);box-shadow:var(--shadow)}dialog::backdrop{background:#0e2628aa;backdrop-filter:blur(3px)}.detail-dialog{width:min(1180px,96vw);height:min(860px,94vh);border-radius:22px}.detail-dialog>div{height:100%;overflow:auto}.form-dialog{width:min(560px,94vw);border-radius:18px}.modal-head{position:sticky;top:0;z-index:3;background:#fff;border-bottom:1px solid var(--line);padding:18px 22px;display:flex;justify-content:space-between;align-items:center}.modal-head h2{margin:0}.close{border:0;background:#edf1ee;border-radius:50%;width:38px;height:38px;font-size:23px}.client-grid{display:grid;grid-template-columns:minmax(0,1.7fr) 330px;gap:16px;padding:18px}.panel{background:#fbfcfa;border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:14px}.panel h3{margin:0 0 12px}.messages{display:grid;gap:10px;max-height:430px;overflow:auto;padding:5px}.message{max-width:82%;background:#fff;border:1px solid var(--line);border-radius:15px;padding:11px 13px}.message.out{margin-left:auto;background:var(--mint);border-color:#acd9c7}.message.system{opacity:.55}.message small{display:block;color:var(--muted);margin-top:6px}.message-actions{display:flex;justify-content:flex-end;margin-top:6px}.message-actions button{font-size:12px;padding:5px 8px}.attachment{display:inline-flex;gap:6px;margin-top:6px}.compose{border-top:1px solid var(--line);margin-top:13px;padding-top:13px}.compose textarea{width:100%;min-height:85px;resize:vertical}.compose-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:9px;align-items:end;margin-top:9px}.compose-controls label{display:grid;gap:4px;font-size:12px;color:var(--muted)}.compose-controls .toggle{display:flex;align-items:center;gap:7px;color:var(--ink);padding-bottom:10px}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.action-grid button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px;text-align:left}.task,.info-row{padding:10px 0;border-bottom:1px solid var(--line)}.task:last-child,.info-row:last-child{border:0}.task strong,.task span{display:block}.task span{color:var(--muted);font-size:13px;margin-top:3px}.task-actions{display:flex;gap:7px;margin-top:8px}.task-actions button{border:0;border-radius:8px;padding:7px 9px}.form-body{padding:20px;display:grid;gap:13px}.form-body h2{margin:0}.form-body>label{display:grid;gap:5px}.form-body textarea{min-height:90px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.stage-track{display:flex;gap:6px;overflow:auto}.stage-track button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px;white-space:nowrap}.stage-track button.active{background:var(--ink);color:#fff}.order-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}.check-row{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--line)}a{color:var(--accent)}
@media(max-width:900px){.app{display:block}.sidebar{display:none}.topbar{padding:15px 14px;align-items:start}.topbar h1{font-size:24px}.top-actions{flex-wrap:wrap;justify-content:flex-end}.scope{display:none}.search{order:3;width:100%}.search input{width:100%;min-width:0}.content{padding:14px 12px 94px}.card{grid-template-columns:1fr;gap:8px}.card-side{text-align:left}.mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);left:0;right:0;bottom:0;z-index:12;background:#fff;border-top:1px solid var(--line);padding:7px 3px max(7px,env(safe-area-inset-bottom))}.mobile-nav button{border:0;background:transparent;display:grid;place-items:center;gap:2px;color:var(--muted)}.mobile-nav button.active{color:var(--accent)}.detail-dialog{width:100vw;height:100dvh;max-width:none;max-height:none;border-radius:0}.client-grid,.order-grid{grid-template-columns:1fr;padding:12px}.compose-controls{grid-template-columns:1fr}.compose-controls .toggle{padding:2px}.message{max-width:94%}.form-row{grid-template-columns:1fr}.action-grid{grid-template-columns:1fr}.modal-head{padding:13px 15px}.form-dialog{width:calc(100vw - 20px)}.topbar .primary{padding:10px}.toasts{left:12px;right:12px;bottom:82px}}

/* V55.2: keep the reply selector and submit button inside the dialog column. */
@media(min-width:901px){.compose-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.compose-controls>*{min-width:0}.compose-controls select{width:100%;min-width:0}.compose-controls>.primary{width:100%}}

/* V55 uses a persistent work panel on desktop; forms alone remain modal. */
body.detail-open{overflow:hidden}
body.detail-open .app main{margin-right:min(980px,72vw)}
.detail-dialog{position:fixed;z-index:40;inset:0 0 0 auto;margin:0;width:min(980px,72vw);max-width:none;height:100dvh;max-height:none;border-radius:0;border-left:1px solid var(--line)}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.filters select,.filters input{min-width:150px;background:#fff}
.timeline-filter{display:flex;gap:7px;overflow:auto;margin:10px 0}.timeline-filter button{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 10px}.timeline-filter button.active{background:var(--ink);color:#fff}
.attachment-preview{display:block;max-width:260px;max-height:190px;border-radius:10px;margin-top:7px}.more-actions summary{cursor:pointer;font-weight:750;padding:10px 0}.primary-action{width:100%;margin-bottom:8px}.client-fields{display:grid;gap:6px}.event{font-size:13px;color:var(--muted);padding:7px 9px;border-left:2px solid var(--line)}
@media(max-width:1100px){body.detail-open .app main{margin-right:0}.detail-dialog{inset:0;width:100vw;height:100dvh;border:0}}
@media(max-width:900px){.filters{overflow:auto;flex-wrap:nowrap}.filters>*{min-width:160px}.client-grid{display:flex;flex-direction:column}.client-grid>aside{order:-1}.client-grid>aside .panel:not(:first-child){order:2}}

/* V55.15: explicit, compact destructive contact-hiding control. */
.danger-toggle{display:flex!important;align-items:flex-start;gap:12px;padding:14px;border:1px solid #efc6c1;border-radius:12px;background:#fff5f3;cursor:pointer}.danger-toggle input{width:20px;height:20px;margin:2px 0 0;padding:0;flex:0 0 auto;accent-color:var(--danger)}.danger-toggle span,.danger-toggle strong,.danger-toggle small{display:block}.danger-toggle strong{color:#982f29}.danger-toggle small{margin-top:4px;line-height:1.35;color:var(--muted)}
