:root{font-family:Inter,Montserrat,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:#202a3b;background:#f6f8fb;font-size:14px;line-height:1.5;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:#2257c9;text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:3px solid #89b5ff;outline-offset:2px}h1,h2,h3,p{margin-top:0}h1{font-size:25px;letter-spacing:-.025em;line-height:1.25}h2{font-size:19px;letter-spacing:-.02em}h3{font-size:15px}small,.small{font-size:12px}.muted{color:#798394}.bold{font-weight:700}.kicker{font-weight:750;font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:#8b96a6}input,textarea,select{width:100%;border:1px solid #dce2eb;background:white;color:#1f2a3b;border-radius:9px;padding:10px 12px;outline:none;min-height:40px}input:focus,textarea:focus,select:focus{border-color:#6a91ee;box-shadow:0 0 0 3px #e9efff}textarea{resize:vertical;min-height:90px}label{display:block;font-weight:650;color:#374256;font-size:12px}label>input,label>textarea,label>select{margin-top:6px;font-weight:400}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:39px;padding:9px 14px;border:1px solid #dce2ec;border-radius:9px;color:#344056;background:#fff;font-weight:650;white-space:nowrap;text-decoration:none;line-height:1.25}.btn:hover{text-decoration:none;background:#f6f8fd;border-color:#bbc6d6}.btn.primary{background:#355fd7;border-color:#355fd7;color:#fff}.btn.primary:hover{background:#284ab6}.btn.danger{color:#ba3a44;border-color:#f1c8c9}.btn.small{padding:7px 10px;min-height:32px;font-size:12px}.btn.ghost{background:transparent;border-color:transparent}.btn:disabled{opacity:.5;cursor:not-allowed}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1;min-width:0}.app-layout{display:flex;min-height:100vh}.sidebar{width:244px;min-width:244px;background:#101d32;color:#dbe4f6;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:22px 12px 16px;gap:22px}.brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:800;letter-spacing:-.035em;padding:0 13px}.brand .logo-mark{margin:0}.logo-mark{display:grid;place-items:center;width:37px;height:37px;border-radius:11px;background:linear-gradient(145deg,#5782ff,#234ac2);color:#fff;font-size:21px;font-weight:850;box-shadow:0 5px 14px #0a1c492b}.brand-sub{font-size:10px;color:#8599b7;font-weight:650;letter-spacing:.025em}.nav-group{display:flex;flex-direction:column;gap:5px}.nav-title{color:#8191ab;font-size:10px;letter-spacing:.08em;font-weight:700;padding:0 13px 7px;text-transform:uppercase}.nav-button{background:transparent;text-align:left;color:#b1bfd4;border:1px solid transparent;border-radius:9px;padding:11px 13px;display:flex;align-items:center;gap:11px;width:100%;font-weight:630;cursor:pointer}.nav-button:hover{background:#192a47;color:white}.nav-button.active{background:#244171;color:#fff;border-color:#335486}.nav-button svg{width:17px;height:17px}.nav-count{margin-left:auto;background:#3454a0;color:#fff;padding:1px 6px;border-radius:9px;font-size:10px}.sidebar-bottom{margin-top:auto;padding:12px 9px;border-top:1px solid #29405b;display:flex;align-items:center;gap:10px}.avatar{width:36px;height:36px;border-radius:11px;background:#dae7ff;color:#3d60a1;display:inline-grid;place-items:center;font-size:15px;font-weight:750;flex:0 0 auto}.sidebar .avatar{color:#f5f8ff;background:#354969}.sidebar-bottom .user-meta{min-width:0;flex:1}.sidebar-bottom .user-meta strong,.sidebar-bottom .user-meta span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-bottom .user-meta span{color:#9fb0c9;font-size:11px}.main-layout{min-width:0;flex:1}.topbar{height:70px;background:#fff;border-bottom:1px solid #e6e9ef;display:flex;align-items:center;justify-content:space-between;padding:0 34px;gap:12px;position:sticky;top:0;z-index:10}.topbar .crumb{font-size:12px;color:#7c8898}.topbar h2{margin:0;font-size:17px}.page{max-width:1480px;margin:0 auto;padding:30px 34px 70px}.page-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:25px}.page-header h1{margin:2px 0 7px}.page-header p{margin:0;color:#748094}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:26px}.metric,.panel,.project-card{background:#fff;border:1px solid #e4e9f0;border-radius:13px;box-shadow:0 5px 20px #182a4c06}.metric{padding:20px}.metric .number{font-size:29px;font-weight:800;letter-spacing:-.05em;color:#253b6a;margin:6px 0 1px}.metric .caption{font-size:12px;color:#7d8795}.panel{padding:20px;margin-bottom:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:19px}.panel-head h2{margin:0}.grid-projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:17px}.project-card{padding:21px;display:flex;flex-direction:column;gap:13px;transition:border-color .15s,transform .15s;cursor:pointer;min-height:216px}.project-card:hover{transform:translateY(-2px);border-color:#9db6ed}.project-card h3{font-size:17px;margin:0;letter-spacing:-.018em}.project-card p{font-size:12px;color:#738094;margin:0;line-height:1.65;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #edf0f5;padding-top:12px;margin-top:auto;color:#8591a2;font-size:12px}.tag{display:inline-flex;align-items:center;gap:5px;background:#edf3ff;color:#355ab1;padding:4px 9px;border-radius:7px;font-size:11px;font-weight:700}.tag.green{background:#e5f5ed;color:#23764f}.tag.orange{background:#fff2df;color:#a36318}.tag.red{background:#feeaeb;color:#ab424c}.tag.gray{background:#edf0f4;color:#6c798c}.tabs{display:flex;gap:20px;border-bottom:1px solid #e4e9f0;margin-bottom:22px;overflow:auto}.tab{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;border-bottom:2px solid transparent;color:#7c8798;padding:13px 2px;white-space:nowrap;font-weight:680;cursor:pointer}.tab.active{border-color:#3563d8;color:#2c55bc}.split{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr);gap:18px;align-items:start}.release-list{display:flex;flex-direction:column;gap:10px}.release-item{padding:16px;border:1px solid #e5eaf2;background:#fff;border-radius:11px;text-align:left;cursor:pointer;width:100%;display:block;color:inherit}.release-item.active{border-color:#688ce3;box-shadow:0 0 0 3px #eef3ff}.release-item:hover{border-color:#abc1ef}.release-item .version{font-weight:800;font-size:14px}.release-item .meta{font-size:11px;color:#8591a0;margin-top:7px}.release-item .title{font-size:12px;margin-top:5px;color:#566277}.details{min-width:0}.detail-top{display:flex;justify-content:space-between;align-items:start;gap:8px;flex-wrap:wrap}.detail-top h2{margin:4px 0}.note{background:#f5f7fb;padding:15px;border-radius:9px;color:#4b5668;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.changes{display:grid;gap:7px;margin:12px 0}.change{border-left:3px solid #718ee5;background:#f6f8fe;padding:8px 11px;font-size:12px;border-radius:0 7px 7px 0}.change span{font-weight:750;color:#345ab4;margin-right:7px}.diff-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:15px 0}.diff-metric{padding:10px;background:#f5f7fa;border-radius:8px;text-align:center}.diff-metric b{display:block;font-size:21px}.diff-metric small{color:#788394}.file-list{max-height:220px;overflow:auto;border:1px solid #edf0f5;border-radius:8px;margin:8px 0 14px}.file-line{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:7px 11px;font-family:ui-monospace,monospace;font-size:11px;border-bottom:1px solid #f1f3f8;overflow-wrap:anywhere}.file-line:last-child{border:0}.file-line.add{color:#167044}.file-line.del{color:#b8454f}.file-line.mod{color:#8c631b}.discussion{border-top:1px solid #e8ecf2;margin-top:20px;padding-top:20px}.comment{padding:14px;border:1px solid #e7ecf3;border-radius:10px;background:#fff;margin-bottom:9px}.comment.reply{margin-left:24px;border-left:3px solid #b2c6ed}.comment-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:9px 0;color:#404c5e}.comment-meta{display:flex;align-items:center;gap:8px;font-size:12px}.comment-meta time{color:#8995a6}.link-button{padding:0;border:0;background:none;color:#365fca;font-weight:650;cursor:pointer}.inline-form{margin-top:11px}.inline-form textarea{min-height:64px}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;text-align:left}.table th,.table td{padding:13px 12px;border-bottom:1px solid #e9edf3;vertical-align:middle}.table th{font-size:11px;color:#8390a0;text-transform:uppercase;letter-spacing:.045em}.table td{font-size:13px}.table tr:last-child td{border-bottom:0}.feed{display:flex;flex-direction:column;gap:0}.feed-item{padding:13px 0;border-bottom:1px solid #eef0f5;display:flex;align-items:flex-start;gap:12px}.feed-item:last-child{border:0}.feed-dot{width:9px;height:9px;background:#7594df;border:3px solid #e8eeff;box-sizing:content-box;border-radius:50%;flex:0 0 auto;margin-top:4px}.feed-item .body{font-size:12px;color:#475469}.empty{padding:50px 20px;text-align:center;color:#7e8a9a;background:#fff;border:1px dashed #d9e1ed;border-radius:13px}.empty h3{color:#43526b;margin:0 0 8px}.empty .art{font-size:40px;margin:0 0 15px}.dialog-backdrop{position:fixed;inset:0;z-index:100;background:#0a172987;display:grid;place-items:center;padding:18px}.dialog{width:min(540px,100%);max-height:95vh;overflow:auto;background:#fff;border-radius:16px;box-shadow:0 25px 70px #0003;padding:24px}.dialog h2{margin-bottom:7px}.dialog .sub{color:#7f8a9a;margin-bottom:20px;font-size:12px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.alert{padding:12px 14px;border-radius:9px;margin:12px 0;font-size:13px;background:#edf4ff;color:#355ba2}.alert.error{background:#feebea;color:#a73c46}.alert.warn{background:#fff2d9;color:#9b6a18}.alert.success{background:#e6f7eb;color:#216e47}.auth-wrapper,.installer{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#e4edff 0,#f5f7fb 48%,#f8fafc 100%);padding:20px}.auth-panel{background:#fff;border:1px solid #e0e7f2;border-radius:17px;padding:34px;width:min(430px,100%);box-shadow:0 20px 70px #273f6c15}.auth-panel .logo-mark{margin-bottom:24px}.auth-panel h1{font-size:25px;margin-bottom:6px}.auth-panel p{margin-bottom:24px}.install-panel{width:min(520px,100%)}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;color:#6e7e9a;font-weight:650}.progress{height:8px;background:#e6eaf2;border-radius:20px;overflow:hidden;margin:10px 0}.progress span{display:block;height:100%;background:#4170e5;transition:width .25s}.hint{font-size:11px;color:#9ba5b3;margin:8px 0 0}.upload-box{padding:20px;border:2px dashed #ced9ef;border-radius:12px;background:#f8faff}.notice-card{padding:12px;border:1px solid #e8edf4;border-radius:9px;margin-bottom:8px;background:#fff}.notice-card.unread{background:#eff5ff;border-color:#cfdef7}.nowrap{white-space:nowrap}.mono{font-family:ui-monospace,monospace;font-size:11px;word-break:break-all}.select-compact{min-width:130px}.pointer{cursor:pointer}#toast{position:fixed;right:20px;bottom:20px;z-index:200;max-width:400px}#toast .message{padding:14px 18px;color:white;background:#22395c;border-radius:10px;box-shadow:0 14px 40px #0003;margin-top:10px}#toast .message.error{background:#ba454e}.list-small{margin:8px 0;padding-left:17px}.list-small li{margin:5px 0}.checkbox-line{display:flex;align-items:center;gap:8px;font-weight:500}.checkbox-line input{width:auto;min-height:0}.drawer-toggle{display:none}
@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:minmax(225px,.65fr) minmax(0,1.35fr)}.page{padding:24px}.topbar{padding:0 24px}}
@media(max-width:780px){.sidebar{position:fixed;left:-260px;z-index:50;transition:left .2s;box-shadow:none}.sidebar.open{left:0;box-shadow:0 0 0 500px #15203380}.drawer-toggle{display:inline-flex}.topbar{height:59px;padding:0 16px}.page{padding:18px 14px 60px}.split{grid-template-columns:1fr}.diff-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.page-header h1{font-size:22px}.topbar h2{font-size:14px}.metrics{gap:10px}.metric{padding:14px}.metric .number{font-size:25px}.panel{padding:16px}.auth-panel{padding:25px}.sidebar-bottom{padding:9px}}
@media(max-width:420px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.page-header .row{width:100%}.btn{padding:9px 10px}.diff-metric{padding:6px}.diff-metric b{font-size:17px}.tabs{gap:13px}.comment.reply{margin-left:11px}.dialog{padding:17px}}
/* DevCRM 2.0: delivery workflow, responsive Kanban and release approval */
.task-panel{padding:20px;min-width:0}.task-toolbar{margin-bottom:14px}.task-toolbar p{margin:4px 0 0}.task-filters{display:grid;grid-template-columns:minmax(160px,1fr) 180px auto auto;align-items:center;gap:12px;margin-bottom:18px}.task-filters .checkbox-line{white-space:nowrap;justify-content:center}.task-filters input,.task-filters select{margin:0}.task-filters input[type=checkbox]{width:16px;height:16px;min-height:16px;accent-color:#355fd7}.kanban{display:grid;grid-template-columns:repeat(4,minmax(190px,1fr));gap:12px;align-items:start;overflow-x:auto;padding:3px 1px 12px}.kanban-col{background:#f4f6fa;border:1px solid #e6ebf2;border-radius:12px;min-width:0;padding:10px;min-height:310px;transition:background .18s}.kanban-col:has(.kanban-card:active){background:#f0f3fd}.kanban-head{display:flex;align-items:center;gap:9px;font-size:13px;padding:5px 3px 13px;white-space:nowrap}.kanban-head .muted{margin-left:auto}.kanban-color{width:9px;height:9px;border-radius:50%;background:#8593a9;flex:0 0 auto}.status-in_progress{background:#e7a33a}.status-review{background:#4877ec}.status-done{background:#2eab7b}.kanban-items{display:flex;flex-direction:column;gap:9px;min-height:260px}.kanban-card{background:white;border:1px solid #e0e7f1;border-radius:10px;padding:13px;box-shadow:0 2px 8px #20365c08;cursor:pointer;overflow-wrap:anywhere}.kanban-card[draggable=true]{cursor:grab}.kanban-card:hover{border-color:#b7c9ed;box-shadow:0 5px 18px #20365c16}.kanban-card:active{cursor:grabbing}.kanban-card strong{display:block;font-size:13px;line-height:1.45;margin:10px 0}.kanban-placeholder{padding:32px 8px;text-align:center;font-size:12px;color:#9aa5b4;border:1px dashed #d9e0ea;border-radius:9px}.task-tags{display:flex;flex-wrap:wrap;gap:4px}.task-tags .tag{font-size:10px;padding:3px 6px}.task-foot{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:12px;padding-top:10px;border-top:1px solid #f0f2f6;font-size:11px;color:#7b8797}.task-date.overdue{color:#c04550;font-weight:750}.clickable-row{cursor:pointer}.clickable-row:hover{background:#f6f8fd}.wide-dialog{width:min(920px,100%)}.task-detail-head{padding:6px 0 17px;border-bottom:1px solid #e8edf4}.task-detail-head h2{font-size:22px;margin:9px 0}.task-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:25px;padding-top:17px}.task-detail-grid h3{margin:20px 0 12px}.task-description{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;color:#4e5c72}.task-sidebar{background:#f7f9fc;border:1px solid #e8edf4;padding:16px;border-radius:12px;height:fit-content;display:flex;flex-direction:column;gap:17px}.task-sidebar h3{margin:0}.task-sidebar label select{margin-top:8px}.checklist{border:1px solid #e8edf4;border-radius:10px;overflow:hidden}.check-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;gap:7px;border-bottom:1px solid #eff2f7}.check-row:last-child{border-bottom:0}.check-row .checkbox-line{font-size:13px;flex:1;min-width:0}.check-row .checkbox-line input{flex:0 0 16px;height:16px;min-height:16px;accent-color:#3c69d5}.check-row .checkbox-line.completed span{text-decoration:line-through;color:#9da8b7}.check-add{display:flex;gap:8px;margin:11px 0 17px}.check-add input{min-width:0}.attachments-list{display:flex;flex-direction:column;gap:7px;margin-bottom:12px}.attachment-row{display:flex;align-items:center;gap:10px;padding:9px 11px;background:#f7f9fc;border-radius:8px;font-size:12px}.attachment-row a{overflow-wrap:anywhere;flex:1;min-width:0}.attachment-pill{display:inline-block;margin:0 5px 8px 0;background:#eef3fa;padding:5px 8px;border-radius:6px;font-size:11px}.gap-small{gap:13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.review-log{margin-top:20px;padding-top:15px;border-top:1px solid #e8edf4}.review-record{padding:10px 12px;margin-top:8px;background:#f5f8fd;border-radius:10px}.review-record div{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.review-record small{color:#8792a2}.review-record p{margin:9px 0 1px;white-space:pre-wrap;color:#46566b}.tiny{font-size:10px}
@media(max-width:1100px){.kanban{grid-template-columns:repeat(4,minmax(220px,1fr))}}
@media(max-width:780px){.kanban{display:flex;overflow-x:auto;scroll-snap-type:x proximity;gap:10px}.kanban-col{flex:0 0 min(78vw,275px);scroll-snap-align:start;min-height:260px}.task-filters{grid-template-columns:1fr 1fr;gap:8px}.task-filters input[name=taskSearch]{grid-column:span 2}.task-detail-grid{grid-template-columns:1fr}.task-sidebar{order:-1;display:grid;grid-template-columns:1fr 1fr;align-items:start}.task-sidebar h3{grid-column:span 2}.wide-dialog{max-height:96vh}.task-panel{padding:14px}}
@media(max-width:480px){.task-toolbar{align-items:flex-start;flex-wrap:wrap}.task-sidebar{grid-template-columns:1fr 1fr;padding:12px}.check-add .btn{padding:8px}.form-grid{grid-template-columns:1fr}.task-filters{grid-template-columns:1fr 1fr}.task-filters select{min-width:0}.task-filters .btn{font-size:12px}.dialog.wide-dialog{padding:16px}.attachment-row{flex-wrap:wrap}}
/* On narrow phones, stack the Kanban lanes; dragging is desktop-only. */
@media(max-width:600px){.kanban{display:grid;grid-template-columns:minmax(0,1fr);overflow:visible;scroll-snap-type:none}.kanban-col{min-width:0;min-height:0;flex:none}.kanban-items{min-height:0}.kanban-placeholder{padding:10px 7px}.task-panel .panel-head{gap:9px}.task-filters .btn{justify-self:end}}
/* DevCRM 3.0 — Git, source code comparison, release QA, deployment ledger */
.delivery-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}.delivery-panel{padding:22px;min-width:0}.delivery-panel h3{font-size:14px;margin:22px 0 11px}.delivery-wide{grid-column:1/-1}.delivery-panel .code-small{display:block;max-width:100%;overflow-wrap:anywhere;padding:12px;background:#f5f7fb;border:1px solid #e5e9f1;border-radius:8px;font-size:12px;margin:10px 0 12px}.repo-summary{display:flex;align-items:center;flex-wrap:wrap;gap:9px;font-size:13px}.repo-summary a{overflow-wrap:anywhere}.delivery-event{padding:13px 0;border-bottom:1px solid #e9edf3;font-size:13px}.delivery-event>div:first-child{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.delivery-event small{font-size:11px;color:#8c97a5}.commit-line{margin:6px 0;color:#455369;overflow-wrap:anywhere}.commit-line code{font-size:11px;color:#3a63ae}.release-choice{display:block;margin-bottom:18px}.release-choice select{width:100%;margin-top:9px}.qa-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #eef1f5;padding:12px 0;font-size:13px}.qa-row>div:first-child{min-width:0;overflow-wrap:anywhere}.qa-row select{min-width:135px;margin:0;padding:8px;font-size:12px}.delivery-form{padding:15px;border-radius:12px;background:#f7f9fc;margin:15px 0 20px}.delivery-form label{font-size:13px}.delivery-form input,.delivery-form select{margin-top:8px}.delivery-form .row{gap:12px;flex-wrap:wrap}.shipment-list{max-height:520px;overflow:auto}.shipment-row{padding:12px 0;border-bottom:1px solid #e8ecf4}.shipment-row>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.shipment-row p{margin:8px 0 0;color:#4f5b70;font-size:13px;overflow-wrap:anywhere}.source-btn{border:0;display:inline;text-align:left;padding:3px 0;background:transparent;white-space:normal;overflow-wrap:anywhere;font-size:12px;line-height:1.5}.source-lines{max-height:70vh;overflow:auto;background:#101b2e;color:#d4dfed;padding:10px 0;border-radius:10px;min-width:0;margin-top:12px;font:12px/1.55 ui-monospace,Consolas,monospace}.source-line{display:grid;grid-template-columns:40px 40px minmax(0,1fr);min-width:660px}.source-line>span{text-align:right;padding:0 8px;color:#8495a9;border-right:1px solid #ffffff0f}.source-line code{padding:1px 12px;white-space:pre;tab-size:4;overflow:visible;font:inherit}.source-line.diff-add{background:#193e32;color:#a3ecc7}.source-line.diff-delete{background:#47272f;color:#ffc4cd}.source-line.diff-context{color:#b5c4d8}@media(max-width:1000px){.delivery-grid{grid-template-columns:1fr}.delivery-wide{grid-column:auto}}@media(max-width:600px){.delivery-panel{padding:15px}.qa-row{align-items:flex-start;flex-wrap:wrap}.delivery-form{padding:11px}.source-lines{font-size:11px}}

.qa-row .row{display:flex;gap:6px;flex-wrap:nowrap;align-items:center}.qa-row .row button{flex:0 0 auto}.qa-row .row select{width:148px;min-width:0}@media(max-width:600px){.qa-row .row{margin-left:auto;width:100%;justify-content:flex-end}}
/* DevCRM v4: conversations, calendar, reporting and notification preferences */
.collab-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px;align-items:start}.collab-layout .panel{min-width:0}.collab-chat{padding:22px}.collab-chat .panel-head{margin-bottom:10px}.collab-chat h2,.collab-calendar h2{margin:0 0 4px}.collab-search{display:flex;gap:8px;margin:18px 0}.collab-search input{min-width:0;flex:1;margin:0}.collab-thread{display:flex;flex-direction:column;gap:6px;padding:9px 0 20px;min-height:180px}.collab-message{display:flex;gap:12px;padding:14px 3px;border-bottom:1px solid #edf0f4}.collab-avatar{border-radius:10px;width:37px;height:37px;background:#e6eefa;color:#3159a1;display:flex;align-items:center;justify-content:center;font-weight:750;flex:none}.collab-message-main{min-width:0;flex:1}.collab-message-main .row{flex-wrap:wrap;gap:7px}.collab-body{margin:9px 0;white-space:pre-wrap;line-height:1.6;overflow-wrap:anywhere;font-size:13px;color:#3b4a5f}.collab-quote{background:#f2f5fa;border-left:3px solid #8ca7e2;border-radius:4px;padding:7px 10px;font-size:12px;color:#596777;white-space:pre-wrap}.collab-attachments{display:flex;flex-wrap:wrap;gap:7px}.collab-attachments a{font-size:12px;padding:8px;background:#edf3fc;border-radius:8px;overflow-wrap:anywhere}.collab-composer{border-top:1px solid #e6ecf3;padding:18px 0 0}.collab-composer textarea{width:100%;margin-bottom:10px}.collab-composer .row{gap:10px}.collab-file-label{font-size:12px;cursor:pointer;color:#355fd7}.collab-file-label input{width:160px;font-size:10px;display:block;margin-top:4px}.collab-mention{width:170px;max-width:100%;font-size:12px;margin:0;padding:7px}.collab-reply{display:flex;align-items:center;gap:10px;color:#4764ac;font-size:12px;padding:8px;margin-bottom:9px;background:#f2f6ff}.collab-side{display:flex;flex-direction:column;gap:14px}.collab-side .panel{padding:18px}.collab-side h3{margin:0 0 16px;font-size:14px}.collab-member{display:flex;align-items:center;gap:9px;margin-bottom:13px}.collab-member b{display:block;font-size:12px}.collab-member small{display:block;color:#8792a6;font-size:11px}.small-avatar{width:31px;height:31px;border-radius:50%;font-size:12px}.collab-calendar{padding:22px}.collab-calendar>.row{flex-wrap:wrap;gap:14px;margin-bottom:17px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekday{text-align:center;font-size:11px;color:#8390a0;font-weight:650;padding:7px 0}.calendar-day{background:#f9fbfe;border:1px solid #e9eef5;border-radius:9px;min-height:96px;min-width:0;display:flex;flex-direction:column;align-items:stretch;text-align:left;gap:4px;padding:7px;cursor:pointer;color:#33425a}.calendar-day.selected{border-color:#4c74d5;background:#eff4ff}.calendar-day.today b{background:#426bd1;color:white;border-radius:6px;padding:3px 6px;width:fit-content}.calendar-empty{min-height:60px}.calendar-pill{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#dce9fc;color:#345d99;padding:3px 4px;border-radius:4px}.calendar-pill.release{background:#e2f4e9;color:#25754c}.calendar-pill.deployment{background:#fff2d9;color:#8a630a}.collab-event{border-bottom:1px solid #edf1f6;padding:9px 0;overflow-wrap:anywhere}.collab-event b{font-size:12px;display:block}.collab-event small{display:block}.collab-report>.row{margin-bottom:17px;gap:15px;flex-wrap:wrap}.collab-report h2{margin:0}.collab-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0}.collab-report-grid>.panel{min-width:0;padding:22px}.collab-report h3{font-size:14px}.collab-stat{margin:18px 0;font-size:13px}.collab-bar{height:9px;background:#e9eef5;border-radius:6px;margin-top:8px;overflow:hidden}.collab-bar>span{display:block;height:100%;background:#4b77d5;border-radius:6px}.collab-metric-row{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid #ecf0f5;font-size:13px}.collab-channel{padding:12px 0;border-bottom:1px solid #e8eef5}.collab-channel .row{gap:10px}.collab-channel .muted{margin:5px 0}.collab-code{border-radius:9px;background:#f1f5fa;padding:12px;margin-top:13px;font-size:12px}.collab-code code{display:block;word-break:break-all;padding:12px;background:white;border-radius:7px;margin-bottom:9px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1100px){.collab-layout{grid-template-columns:minmax(0,1fr) 220px}.calendar-day{min-height:77px}}
@media(max-width:780px){.collab-layout{grid-template-columns:1fr}.collab-chat,.collab-calendar{padding:15px}.collab-side{display:grid;grid-template-columns:1fr 1fr}.calendar-day{min-height:60px;padding:4px}.calendar-pill{font-size:9px}.collab-report-grid{grid-template-columns:1fr}}
@media(max-width:480px){.collab-side{grid-template-columns:1fr}.collab-chat .row.between{align-items:start}.collab-search{flex-wrap:wrap}.collab-search input{flex:1 1 100%}.collab-member{margin-bottom:7px}.calendar-grid{gap:2px}.calendar-weekday{font-size:9px}.calendar-day{border-radius:5px;min-height:53px}.calendar-day b{font-size:10px}.calendar-pill{font-size:8px;padding:2px}.calendar-day.today b{padding:2px}.calendar-empty{min-height:36px}.collab-composer .row{flex-wrap:wrap}}

/* DevCRM v4.1: drop-zone and feature administration */
.upload-dropzone{padding:22px 20px!important;border:2px dashed #a3b3ca!important;border-radius:14px;text-align:center;transition:background .15s,border-color .15s;background:#f8fbff}
.upload-dropzone.drag-over{border-color:#3176dc!important;background:#e9f3ff;box-shadow:inset 0 0 0 2px #98c6ff}
.upload-dropzone.has-file{border-color:#36966c!important;background:#effaf4}
.upload-dropzone .upload-symbol{font-size:36px;font-weight:700;color:#4775b9;line-height:1.2}
.upload-dropzone strong{display:block;font-size:15px;margin:5px 0}.upload-dropzone .upload-picker{display:inline-flex;position:relative;cursor:pointer;border-radius:9px;background:#2165c3;color:white;padding:9px 15px;margin:8px auto;font-weight:600}
.upload-picker input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;font-size:0}
.upload-picker:focus-within{outline:3px solid #74baff}.drop-file-name{min-height:18px;margin:8px 0;font-size:12px;color:#4b657e;word-break:break-all}
.feature-panel{padding:22px;margin-bottom:18px;min-width:0}.feature-panel h2{margin:0 0 5px}.feature-panel p{margin:0 0 19px}
.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.feature-switch{display:flex;align-items:center;justify-content:space-between;border:1px solid #e0e7f1;border-radius:11px;padding:14px;gap:10px;cursor:pointer}
.feature-switch span{display:flex;flex-direction:column;gap:4px}.feature-switch small{font-size:11px;color:#6e7a8f}.feature-switch input{width:20px;height:20px;accent-color:#256acc;flex-shrink:0}
.feature-tags,.developer-assign-list{display:grid;gap:11px}.feature-tag-card,.developer-assign{border:1px solid #e0e7f1;border-radius:12px;padding:13px 16px;min-width:0}.feature-chips,.feature-checkboxes{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}
.feature-chip{font-size:11px;padding:3px 8px;background:#eff2f6;border-radius:20px;color:#6d7687}.feature-chip.is-on{background:#e5f8ec;color:#206847}.feature-chip.is-off{background:#fae7e7;color:#a84545}
.feature-checkboxes{gap:11px 17px}.feature-mode{display:grid;grid-template-columns:1fr minmax(125px,170px);align-items:center;gap:15px;margin:6px 0}.feature-modes{margin:12px 0}
@media(max-width:650px){.feature-grid{grid-template-columns:1fr}.feature-panel{padding:15px}.feature-tag-card .row.between{align-items:flex-start;gap:10px;flex-wrap:wrap}.feature-mode{grid-template-columns:1fr minmax(120px,145px)}.upload-dropzone{padding:17px 9px!important}}

/* DevCRM 4.4: per-release actions, read receipts, tinted developer notes */
.release-item-wrap{position:relative;min-width:0}
.release-item-wrap .release-item{padding-right:42px;min-height:88px}
.release-item-wrap .release-list-status{padding-right:6px}
.release-delete{position:absolute;right:11px;top:11px;width:28px;height:28px;display:grid;place-items:center;border:1px solid transparent;border-radius:8px;background:transparent;color:#8694a7;font-size:20px;line-height:1;font-weight:400;cursor:pointer;z-index:1}
.release-delete:hover,.release-delete:focus-visible{color:#b32d40;background:#fff1f2;border-color:#efb4bb}
.manual-notes-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:24px 0 10px}
.manual-notes-head h3{margin:0}
.manual-note{border:1px solid #0000000e;border-left:4px solid #6a78a555;border-radius:10px;padding:13px 14px;margin:10px 0;overflow-wrap:anywhere;color:#26324b}
.manual-note strong{font-size:12px;font-weight:750}
.manual-note-content{font-size:13px;line-height:1.65;white-space:pre-wrap;margin-top:6px}
.manual-note-delete{font-size:18px;line-height:1;background:transparent;color:#6a7586;border:0;border-radius:6px;min-width:26px;min-height:26px;cursor:pointer}
.manual-note-delete:hover{background:#fff5f5;color:#b32d40}
.release-readers{border:1px solid #e5ebf3;border-radius:10px;background:#fafbfd;padding:14px;margin:17px 0}
.release-readers>strong{font-size:12px;display:block;margin-bottom:9px}
.reader-list{display:flex;gap:7px;flex-wrap:wrap}
.category-editor-list{display:grid;gap:10px;margin:15px 0 25px}
.category-item{display:flex;gap:9px;align-items:center;border:1px solid #e6ebf3;border-radius:10px;padding:10px;min-width:0}
.category-item>input[name="name"]{min-width:0;flex:1}
.category-item>input[type="color"]{padding:3px;height:38px;width:50px;min-width:50px;cursor:pointer}
.category-preview{padding:8px 13px;border-radius:8px;flex:1;font-size:13px;font-weight:650}
.category-item .btn{flex-shrink:0}
.category-item>span.muted{flex-shrink:0}
@media(max-width:680px){.manual-notes-head{align-items:flex-start}.category-item{flex-wrap:wrap}.category-item>input[name="name"]{flex:1 1 100%}.manual-notes-head .row{width:100%;gap:6px}.manual-notes-head .btn{flex:1;white-space:normal}}

/* DevCRM 4.6 — compact conversational UI: answers, image previews, drafts and keyboard composer. */
.collab-message{border:1px solid #e6ebf3;border-radius:13px;padding:12px 13px;margin:3px 0;gap:9px;background:#fff;transition:box-shadow .16s}
.collab-message.is-mine{background:#eef5ff;border-color:#d9e7ff}
.collab-message.is-answer{background:#eaf6f3;border-color:#c6e5dd;border-left:4px solid #36a187}
.collab-message.is-answer.is-mine{background:#e8f3ff;border-left-color:#4f79d1}
.collab-message.is-deleted{background:#f5f6f8;color:#778397;border-color:#e3e6eb}
.collab-message.is-deleted .collab-avatar{opacity:.55}
.collab-message-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;font-size:12px}
.collab-answer-tag{display:inline-block;font-size:10px;color:#23725d;background:#d1efe4;border-radius:6px;padding:3px 6px;margin-left:5px;font-weight:700}
.collab-message.is-mine .collab-avatar{background:#dbe8ff;color:#3764be}
.collab-message.is-answer:not(.is-mine) .collab-avatar{background:#d3ece4;color:#237962}
.collab-body{color:#2b394d;margin:8px 0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.55}
.collab-deleted-label{color:#8490a0;font-style:italic;font-size:12px;margin:10px 0}
.collab-message .collab-quote{display:flex;text-align:left;flex-direction:column;align-items:flex-start;width:100%;background:#ffffffb9;border:0;border-left:3px solid #60a68f;border-radius:6px;padding:8px 11px;font-size:12px;gap:4px;cursor:pointer;min-width:0;color:#526277;margin:8px 0}
.collab-message .collab-quote strong{font-size:11px;color:#2e7b65}
.collab-message .collab-quote span{white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;max-width:100%}
.collab-actions{display:flex;flex-wrap:wrap;gap:3px 10px;margin-top:8px}
.collab-actions button{background:transparent;border:0;padding:5px 2px;font-size:11px;font-weight:600;color:#647b9f;cursor:pointer}
.collab-actions button:hover,.collab-actions button:focus-visible{color:#245fc1;text-decoration:underline}
.collab-actions button.danger-action:hover{color:#c83e4b}
.collab-attachments{display:flex;gap:9px;flex-wrap:wrap;margin:8px 0}
.collab-image{display:flex;flex-direction:column;max-width:228px;gap:2px;border-radius:9px;overflow:hidden;border:1px solid #d6e1ef;background:#fff}
.collab-image button{padding:0;background:#e8eef5;max-width:100%;height:auto;border:0;cursor:zoom-in}
.collab-image img{display:block;max-width:100%;width:100%;max-height:185px;object-fit:cover}
.collab-download{font-size:10px;padding:6px 9px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.collab-file{display:inline-block;font-size:12px;padding:8px;border-radius:8px;background:#fff;border:1px solid #dce5f0;overflow-wrap:anywhere}
.collab-flash{box-shadow:0 0 0 3px #8db5ff!important}
.collab-composer{position:relative;background:#fbfdff;border:1px solid #dce6f2;border-radius:12px;margin-top:12px;padding:11px}
.collab-dropzone{position:relative}
.collab-dropzone textarea{resize:vertical;min-height:76px;margin:0;border:1px solid #e5eaf2;border-radius:9px;padding:11px;background:white}
.collab-dropzone.drag-over::after{content:"";position:absolute;inset:0;background:#e6f2ffee;border:2px dashed #4c7fd3;border-radius:8px;pointer-events:none}
.collab-dropzone.drag-over .collab-drop-hint{display:block}
.collab-drop-hint{display:none;position:absolute;z-index:1;top:50%;left:50%;transform:translate(-50%,-50%);font-weight:750;font-size:13px;color:#315ba4;white-space:nowrap;pointer-events:none}
.collab-compose-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-top:10px}
.collab-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.collab-attach-button{position:relative;cursor:pointer;display:inline-flex;align-items:center}
.collab-attach-button input[hidden]{display:none}
.collab-pending-files{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.collab-pending-files:empty{display:none}
.collab-pending{position:relative;width:105px;border:1px solid #e0e7f0;border-radius:9px;background:white;overflow:hidden;padding:4px;display:flex;flex-direction:column;gap:3px}
.collab-pending-preview{display:grid;place-items:center;height:76px;font-size:23px;border-radius:6px;background:#f2f5fa}
.collab-pending-preview img{width:100%;height:100%;object-fit:cover;border-radius:6px}
.collab-pending span{font-size:10px;color:#58657b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.collab-pending>button{position:absolute;top:4px;right:4px;background:#fff;border:1px solid #dbe0e8;box-shadow:0 1px 3px #0002;border-radius:50%;width:23px;height:23px;cursor:pointer;color:#bc3447}
.collab-helper{margin:8px 1px 0;font-size:10px}
.collab-edit-label{display:flex;justify-content:space-between;align-items:center;color:#325eaf;padding:5px 7px;font-size:12px;font-weight:600}
.collab-reply{border-left:3px solid #48a38e;background:#eff9f5;border-radius:7px;gap:12px;justify-content:space-between;padding:10px}
.collab-reply div{min-width:0;display:flex;flex-direction:column;gap:3px}
.collab-reply span{font-size:12px;color:#537064;max-height:42px;overflow:hidden;overflow-wrap:anywhere;white-space:pre-wrap}
.collab-more{text-align:center;margin:10px}
.collab-lightbox{position:fixed;inset:0;z-index:2000;background:#050c17eb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:40px 16px}
.collab-lightbox img{object-fit:contain;max-width:98%;max-height:80vh}
.collab-lightbox a{color:white;font-size:13px;padding:9px}
.collab-lightbox-close{position:absolute;top:15px;right:20px;background:#ffffff24;color:white;border:0;border-radius:9px;font-size:32px;width:44px;height:44px;cursor:pointer}
@media(max-width:600px){.collab-message{padding:10px 8px;gap:8px}.collab-message>.collab-avatar{width:29px;height:29px;font-size:11px}.collab-message-meta{font-size:11px}.collab-actions{gap:2px 9px}.collab-quote{font-size:11px}.collab-helper{line-height:1.5}.collab-composer{padding:9px}.collab-image{max-width:190px}}
.collab-reactions{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:7px}
.collab-reactions>button,.collab-reaction-picker button{background:#ffffffa8;border:1px solid #dbe4f0;border-radius:20px;padding:3px 8px;font-size:12px;cursor:pointer;color:#586b84}
.collab-reactions>button.active{background:#d7e8ff;border-color:#8fb1e8;color:#194b9a}
.collab-reaction-picker{display:flex;align-items:center;gap:4px;background:#fff;border-radius:9px;padding:4px;border:1px solid #d7e1ec;box-shadow:0 3px 12px #0001}
.collab-reaction-picker button{font-size:15px;padding:3px 5px;border:0}
/* DevCRM 4.7: release comments use the full protected conversation UI. */
.release-chat{margin-top:17px;min-width:0}.release-chat .panel-head{margin-bottom:16px}
.release-chat-list{display:flex;flex-direction:column;gap:10px}
.release-chat-message{max-width:100%;min-width:0;margin:0}
.release-chat-message-main{display:flex;gap:11px;align-items:flex-start;min-width:0}
.release-chat-message-inner{flex:1;min-width:0}
.release-chat-avatar{height:32px;width:32px;min-width:32px;font-size:12px;border-radius:9px}
.release-chat-quote{width:100%;max-width:100%;}
.release-chat .collab-actions button{padding:5px 1px}
.release-chat .collab-reactions{position:relative}
.release-chat .collab-reaction-picker{z-index:2}
.release-chat-composer{padding:12px;margin-top:17px;min-width:0}
.release-chat-composer.drag-over{border-color:#3779dc;background:#eaf3ff}
.release-chat .collab-reply{display:flex;align-items:center;margin-bottom:11px}
.release-chat .collab-body{white-space:pre-wrap;overflow-wrap:anywhere}
.release-chat .collab-attachments{margin:9px 0}
.release-chat .collab-dropzone textarea{width:100%;min-height:82px}
@media(max-width:600px){.release-chat{padding:13px}.release-chat-message-main{gap:7px}.release-chat-composer{padding:9px}.release-chat .collab-tools .muted{flex:1 1 100%;line-height:1.4}.release-chat-avatar{height:28px;width:28px;min-width:28px}.release-chat .collab-message-meta{gap:2px}}

/* v4.8: responsive full-width three-column release workspace. */
.page{max-width:none;width:100%;margin:0;padding:26px clamp(16px,1.9vw,38px) 68px}
.main-layout{min-width:0;width:100%;max-width:100%;}
.release-workspace{display:grid;grid-template-columns:minmax(220px,0.62fr) minmax(405px,1.53fr) minmax(290px,0.92fr);align-items:start;gap:16px;width:100%;min-width:0}
.release-workspace>div{min-width:0}
.release-info-col>.panel,.release-discussion-col>.panel{margin-top:0;margin-bottom:18px}
.release-discussion-col .release-chat{padding:17px}
.release-discussion-col .collab-message{overflow-wrap:anywhere}
.release-discussion-col .collab-message-meta{display:flex;flex-wrap:wrap;gap:4px}
.release-discussion-col .collab-compose-bottom{align-items:flex-start;flex-wrap:wrap}
.release-discussion-col .collab-compose-bottom>.btn{margin-left:auto}
.release-discussion-col .collab-tools{flex-wrap:wrap}
.release-discussion-col .collab-image img{max-width:100%}
.release-discussion-col .release-chat-composer{padding:9px}
.release-workspace .diff-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.release-workspace .diff-metric{padding:9px 3px}
.release-workspace .diff-metric b{font-size:19px}
.release-workspace .diff-metric small{font-size:10px}
.release-history-col{position:sticky;top:90px;max-height:calc(100vh - 105px);overflow-y:auto;scrollbar-width:thin;padding:1px 2px 5px}
.release-history-col h2{font-size:17px}
.sidebar{transition:width .18s ease,min-width .18s ease,padding .18s ease}
.nav-icon{display:inline-grid;place-items:center;width:18px;min-width:18px;font-weight:750}
.nav-label{min-width:0}
.sidebar.is-collapsed{width:68px;min-width:68px;padding:22px 8px 16px;gap:22px}
.sidebar.is-collapsed .brand{padding:0;justify-content:center}
.sidebar.is-collapsed .brand-text,.sidebar.is-collapsed .nav-title,.sidebar.is-collapsed .nav-label,.sidebar.is-collapsed .sidebar-bottom .user-meta,.sidebar.is-collapsed .sidebar-bottom .btn,.sidebar.is-collapsed .nav-count{display:none}
.sidebar.is-collapsed .nav-button{justify-content:center;padding:11px 8px;gap:0}
.sidebar.is-collapsed .nav-icon{width:21px;min-width:21px;font-size:19px}
.sidebar.is-collapsed .sidebar-bottom{justify-content:center;padding:10px 0}
.sidebar.is-collapsed .sidebar-bottom .avatar{cursor:pointer}
.sidebar-collapse-toggle{display:inline-flex;min-width:35px;font-size:20px}
@media(max-width:1480px){.release-workspace{grid-template-columns:minmax(185px,.54fr) minmax(360px,1.45fr) minmax(255px,.94fr);gap:12px}.release-workspace .panel{padding:16px}.release-discussion-col .release-chat{padding:14px}.release-workspace .release-item{padding:12px}.release-history-col h2{font-size:15px}}
@media(max-width:1130px){.release-workspace{grid-template-columns:minmax(205px,0.63fr) minmax(0,1.37fr)}.release-discussion-col{grid-column:1/-1}.release-history-col{top:80px}.release-discussion-col .release-chat{padding:20px}}
@media(max-width:780px){.page{padding:17px 13px 52px}.release-workspace{grid-template-columns:minmax(0,1fr);gap:13px}.release-history-col{position:static;max-height:none;overflow:visible}.release-discussion-col{grid-column:auto}.sidebar-collapse-toggle{display:none}.sidebar.is-collapsed{width:244px;min-width:244px;padding:22px 12px 16px}.sidebar.is-collapsed .brand-text,.sidebar.is-collapsed .nav-title,.sidebar.is-collapsed .nav-label,.sidebar.is-collapsed .sidebar-bottom .user-meta,.sidebar.is-collapsed .sidebar-bottom .btn,.sidebar.is-collapsed .nav-count{display:initial}.sidebar.is-collapsed .nav-button{justify-content:flex-start;padding:11px 13px;gap:11px}.sidebar.is-collapsed .sidebar-bottom{justify-content:flex-start;padding:12px 9px}.sidebar.is-collapsed .brand{padding:0 13px;justify-content:flex-start}.release-info-col>.panel,.release-discussion-col>.panel{padding:15px}}

.sidebar-bottom button.avatar{border:0;font:inherit;cursor:pointer;padding:0;appearance:none}
.sidebar-bottom button.avatar:hover{outline:2px solid #557ac1;outline-offset:2px}

/* v4.8.4 client-facing project visibility */
.client-visibility-fields{display:grid;gap:10px;margin:10px 0 15px}.client-visibility-item{align-items:center;border:1px solid #e4eaf3;border-radius:10px;padding:12px 14px;background:#f8faff;cursor:pointer}.client-visibility-item input{flex:0 0 auto}.client-visibility-item span{display:flex;flex-direction:column;gap:3px}.client-visibility-item small{font-size:12px}

/* DevCRM 4.8.5 - unified Font Awesome Free SVG iconography */
.ui-icon{display:inline-block;width:1em;height:1em;flex:none;vertical-align:-.12em;fill:currentColor;color:inherit;overflow:visible}
.btn,.link-button,.collab-actions button,.collab-reaction-picker button,.collab-attach-button{gap:7px}
.btn .ui-icon,.link-button .ui-icon,.collab-actions .ui-icon,.collab-tools .ui-icon{width:14px;height:14px}
.btn{display:inline-flex;align-items:center;justify-content:center}
.nav-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1;width:20px;height:20px;flex-shrink:0}
.nav-icon .ui-icon{width:16px;height:16px}
.sidebar.is-collapsed .nav-icon{width:21px;height:21px}
.sidebar.is-collapsed .nav-icon .ui-icon{width:18px;height:18px}
.sidebar-collapse-toggle .ui-icon,.drawer-toggle .ui-icon{width:16px;height:16px}
.collab-actions button{display:inline-flex;align-items:center;gap:5px}
.collab-actions .ui-icon{width:12px;height:12px}
.collab-answer-tag .ui-icon,.collab-quote .ui-icon{width:11px;height:11px;vertical-align:-.08em}
.collab-pending-preview .ui-icon{width:24px;height:24px;color:#778ba7}
.collab-file .ui-icon,.collab-download .ui-icon{width:12px;height:12px;margin-right:4px}
.collab-lightbox-close .ui-icon{width:21px;height:21px}
.upload-dropzone .upload-symbol{line-height:1;display:grid;place-items:center;margin:0 auto 12px}
.upload-dropzone .upload-symbol .ui-icon{width:36px;height:36px}
.empty .art .ui-icon{width:34px;height:34px}
.collab-pending>button .ui-icon{width:11px;height:11px}
.sidebar .user-meta+.btn .ui-icon{width:15px;height:15px}
@media (prefers-reduced-motion:reduce){.ui-icon{transition:none}}

.svg-sprite-host{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}

/* Tab and action icon tuning */
.tab{display:inline-flex;align-items:center;gap:6px}
.tab .ui-icon{width:13px;height:13px;opacity:.72}
.tab.active .ui-icon{opacity:1}
.release-delete .ui-icon,.manual-note-delete .ui-icon{width:12px;height:12px}
.check-row .ui-icon,.category-item .ui-icon{width:13px;height:13px}
/* DevCRM 4.8.6 — separate, permissioned project mockups and materials */
.project-assets{min-width:0}.project-assets-intro{margin:16px 0 18px}.project-assets-intro h2{margin:0 0 3px;font-size:20px}.project-assets-intro p{margin:0;color:#67768d;font-size:13px}
.asset-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}.asset-source-group{min-width:0}.asset-source-heading{display:flex;align-items:center;gap:12px;border:1px solid #dfe7f1;border-radius:12px;padding:14px 15px;background:#f5f9ff;margin:0 0 13px}.asset-source-heading.client{background:#eef7fc;border-color:#d7e8f1}.asset-source-heading.developer{background:#f2f0ff;border-color:#e1dcf5}.asset-source-heading>.ui-icon{font-size:22px;color:#3971bd;flex:none}.asset-source-heading.developer>.ui-icon{color:#745bc6}.asset-source-heading strong,.asset-source-heading small{display:block}.asset-source-heading strong{font-size:15px}.asset-source-heading small{font-size:11px;color:#6e7b91;line-height:1.5}
.asset-category{padding:17px;margin-bottom:16px;min-width:0}.asset-category-head{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:12px}.asset-category-head h3{margin:0;display:flex;align-items:center;gap:8px}.asset-category-head h3 .ui-icon{color:#5a7292}.asset-category-head p{margin:1px 0 0}.asset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.asset-card{border:1px solid #e1e8f1;background:#fff;border-radius:11px;overflow:hidden;min-width:0}.asset-card-media{height:155px;background:#f1f5fa;overflow:hidden;display:grid;place-items:center}.asset-preview-button{border:0;background:transparent;padding:0;cursor:zoom-in;width:100%;height:100%}.asset-preview-button img{width:100%;height:100%;object-fit:cover}.asset-file-symbol{display:flex;align-items:center;flex-direction:column;gap:8px;color:#677a92;font-size:12px;font-weight:750}.asset-file-symbol .ui-icon{font-size:35px}.asset-card-body{padding:12px}.asset-card-title{font-size:13px;font-weight:750;overflow-wrap:anywhere}.asset-desc{color:#55637b;font-size:11px;margin:6px 0;white-space:pre-wrap;overflow-wrap:anywhere}.asset-card-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:3px 7px;font-size:10px;color:#78869b;margin-top:7px;overflow-wrap:anywhere}.asset-card-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:11px}.asset-card-actions>.btn{padding:5px 8px;font-size:10px;min-height:29px}.asset-locked{color:#247c5a;display:inline-flex;align-items:center;gap:3px}.asset-empty{background:#f9fbfd;color:#92a0b3;border:1px dashed #dce4ef;min-height:95px;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;font-size:11px}.asset-empty .ui-icon{font-size:22px}.asset-revisions{margin-top:9px;border-top:1px solid #e8edf4;padding-top:6px;font-size:11px}.asset-revisions summary{cursor:pointer;font-weight:700;color:#526a8c}.asset-revisions a{display:flex;gap:5px;align-items:center;margin:7px 0;overflow-wrap:anywhere}
.asset-dialog-overlay{position:fixed;inset:0;background:#101b2b99;z-index:1100;display:flex;align-items:center;justify-content:center;padding:20px}.asset-dialog{width:min(100%,540px);max-height:calc(100dvh - 40px);overflow:auto;box-shadow:0 20px 80px #0a193d33}.asset-dialog .panel-head{margin-bottom:20px}.asset-upload-drop{border:2px dashed #a8bad1;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:23px;text-align:center;gap:6px;position:relative;background:#f7faff;cursor:pointer}.asset-upload-drop.is-dragging{background:#e8f2ff;border-color:#407cc5}.asset-upload-drop>.ui-icon{font-size:28px;color:#527cb7}.asset-upload-drop small{font-size:11px;color:#6e7e92}.asset-upload-drop input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.asset-upload-progress{width:100%;height:24px;background:#eef2f9;border-radius:7px;overflow:hidden;position:relative}.asset-progress-bar{height:100%;width:0;background:#3467dc;transition:width .2s}.asset-upload-progress span{position:absolute;inset:0;display:grid;place-items:center;font-size:11px;font-weight:750;color:#17386d}
.asset-lightbox{position:fixed;inset:0;z-index:1200;background:#0c1422f5;color:white;display:flex;flex-direction:column;padding:14px 20px}.asset-lightbox-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.asset-lightbox-top strong,.asset-lightbox-top span{display:block}.asset-lightbox-top strong{font-size:15px}.asset-lightbox-top span{color:#aeb9ce;font-size:12px}.asset-lightbox-top>div:last-child{display:flex;gap:9px}.asset-lightbox .btn{background:#222f45;color:white;border-color:#36425a}.asset-lightbox-body{flex:1;display:flex;align-items:center;justify-content:space-between;min-height:0;gap:10px}.asset-lightbox-body img{max-width:calc(100% - 85px);max-height:calc(100dvh - 130px);object-fit:contain}.asset-lightbox-body button{border:1px solid #64708755;background:#38465a80;border-radius:50%;width:38px;height:38px;color:#fff;flex:none}.asset-lightbox-body button:disabled{opacity:.2}.asset-lightbox>p{min-height:20px;text-align:center;margin:5px 0;color:#c1c9d7;font-size:12px}
@media(max-width:1100px){.asset-source-grid{grid-template-columns:1fr;gap:12px}.asset-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}}
@media(max-width:560px){.asset-grid{grid-template-columns:1fr 1fr;gap:8px}.asset-category{padding:12px}.asset-card-media{height:115px}.asset-card-body{padding:9px}.asset-card-actions>.btn{flex:1;min-width:0}.asset-category-head{flex-wrap:wrap}.asset-lightbox{padding:12px 6px}.asset-lightbox-body{gap:2px}.asset-lightbox-body button{width:28px;height:34px}.asset-lightbox-body img{max-width:calc(100% - 62px)}.asset-lightbox-top{flex-wrap:wrap}}
@media(max-width:390px){.asset-grid{grid-template-columns:1fr}.asset-card-media{height:170px}}

/* v4.8.7: separate user-visible change log from optional source details. */
.release-extra{margin-top:16px;border:1px solid #e6eaf0;border-radius:10px;padding:13px 15px;background:#fcfdff}
.release-extra>summary{list-style:revert;cursor:pointer;font-size:14px;color:#334155}
.release-extra[open]>summary{margin-bottom:12px}
.release-capabilities{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}
.release-capability{background:#f5f7fa;border-radius:8px;padding:12px 14px;font-size:13px}
.release-capability strong{display:block;margin-bottom:6px}
.release-capability ul{margin:0;padding-left:18px}
.release-capability li{margin:4px 0;line-height:1.48}
.release-extra .manual-notes-head{margin:0 0 12px}
