/* Shared v3 refinements; keep the desktop print stylesheet in style.css. */
:root{--ink:#173331;--muted:#6a807d;--line:#dfe9e5;--bg:#f3f7f5;--accent:#116958;--soft:#e8f5ed}
body{font-family:Inter,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
button,input,textarea,select{font:inherit}
select{width:100%;min-width:0;display:block;margin-top:8px;padding:13px 12px;border:1px solid #ccdcd5;border-radius:10px;background:#fff;color:var(--ink);font-size:16px}
input[readonly]{background:#f2f6f4;color:#56716b}
.workspace-nav{display:flex;gap:8px;align-items:center;margin:-12px 0 32px;border-bottom:1px solid var(--line);padding-bottom:14px}
.workspace-nav a{font-size:13px;font-weight:600;padding:9px 16px;color:var(--muted);border-radius:9px}
.workspace-nav a.active{background:#deeee6;color:#155b49}
.workspace-nav a:last-child{margin-left:auto;color:var(--accent)}
.page-heading h1{font-size:31px;letter-spacing:-1px}
.button{border-radius:10px;min-height:46px;transition:background .15s}
.button:disabled{opacity:.65;cursor:wait}
.card{border-radius:16px;box-shadow:0 4px 20px #1d493005}
.notice{background:#e9f5ed;border:1px solid #cde7d6;color:#296744;padding:15px 18px;margin:16px 0 24px;border-radius:12px;font-size:14px}
.danger{background:#fff5f3;border:1px solid #f2d6d1;color:#a34537}
.danger-zone{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:26px}
.danger-zone h2,.danger-zone p{margin-bottom:5px}
.stat{color:var(--ink);box-shadow:0 4px 12px #11362603}
.stat.selected{border-color:#268268;background:#eaf5ed}
.list-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}
.tabs{display:flex;padding:4px;background:#e8eeeb;border-radius:10px;gap:4px;flex-shrink:0}
.tabs a{padding:8px 15px;border-radius:7px;color:#687e74;font-size:13px;font-weight:600}
.tabs a.active{background:#fff;color:#175d48;box-shadow:0 1px 4px #1536270b}
.row-actions{display:flex;gap:8px;align-items:center}.row-actions form{margin:0}
.quote-actions{justify-content:flex-start;margin:0 0 22px}.quote-actions>*{flex:1}
.quote-actions form .button{width:100%}
.supplier-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.supplier-card{margin:0;overflow-wrap:anywhere}.supplier-card .actions{justify-content:flex-start}
.supplier-card .actions .button{padding:10px 12px;white-space:nowrap;overflow-wrap:normal}
.supplier-title{display:flex;align-items:center;gap:13px;margin-bottom:18px}
.supplier-title>div{min-width:0}.supplier-title h2{margin:0 0 5px;font-size:18px}
.avatar{display:grid;place-items:center;width:47px;height:47px;flex-shrink:0;border:1px solid #d4e8db;background:#eaf6ed;border-radius:15px;color:#2c795a;font-weight:700;font-size:23px}
.related-job{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 0;border-bottom:1px solid var(--line);color:var(--ink)}
.related-job strong{display:block;overflow-wrap:anywhere}.related-job small{display:block;color:var(--muted)}
.form-actions{margin-top:24px}.supplier-picker{border-top:3px solid #58a78a}
.revision{border-top:1px solid var(--line);padding:17px 0}
.revision summary{cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:5px 15px;align-items:center;list-style:none}
.revision summary::before{content:'+';display:none}.revision summary small{grid-column:1/-1;color:var(--muted)}
.revision[open] summary{margin-bottom:20px}.revision summary>span{font-weight:600;font-size:14px}
.pagination{display:flex;gap:16px;align-items:center;justify-content:center;margin:24px 0}
.vendor-container .vendor-heading{background:linear-gradient(130deg,#e6f2ea,#f7faf6);border:1px solid #d6e7db;border-radius:18px;padding:24px;margin-bottom:20px}
.vendor-heading .back:empty{display:none}.vendor-heading h1{font-size:29px}.vendor-heading .eyebrow{font-size:10px}
.vendor-heading .vendor-meta strong{font-size:16px}
.vendor-container .details{gap:18px 22px}
.vendor-container .amount-input{border-radius:11px;background:#fbfdfb;border-color:#cfdfd6;overflow:hidden}
.vendor-container .amount-input input{background:transparent}
.vendor-container .amount-input:focus-within{border-color:#14795f;box-shadow:0 0 0 3px #daeee2}
.vendor-container .amount-input input:focus{outline:none}
.mobile-total{display:none}
.supplier-picker select{max-width:100%}
.vendor-container .charge-grid label{font-size:14px;margin-bottom:18px}
.vendor-container .submit-panel{border-top:3px solid #4f9b78}
.requirement-table{margin:4px 0 0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.requirement-row{display:grid;grid-template-columns:minmax(180px,35%) minmax(0,1fr);margin:0;border-bottom:1px solid var(--line)}.requirement-row:last-child{border-bottom:0}.requirement-row dt,.requirement-row dd{margin:0;padding:14px 16px;line-height:1.5}.requirement-row dt{background:#f4f8f6;color:var(--muted);font-size:13px;font-weight:700}.requirement-row dd{color:var(--ink);font-size:15px;overflow-wrap:anywhere}.requirement-row.primary dd{font-weight:700}.requirement-row.instructions dd{white-space:normal}.requirement-card>.button{margin-top:18px}
.portal-login{max-width:520px;margin:48px auto;padding:34px}.portal-login h1{font-size:32px;line-height:1.15;margin-bottom:12px}.portal-login form{margin-top:25px}.portal-login label{display:block;margin-bottom:18px}.portal-login .button{margin-top:5px}.portal-heading{margin-top:4px}.portal-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 22px;padding:6px;border:1px solid var(--line);border-radius:14px;background:#e9f0ec}.portal-tabs a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:10px;color:var(--muted);font-size:13px;font-weight:700}.portal-tabs a strong{display:grid;place-items:center;min-width:25px;height:25px;padding:0 6px;border-radius:999px;background:#d5e3dc;color:var(--ink)}.portal-tabs a.active{background:#fff;color:var(--accent);box-shadow:0 2px 8px #17382a0c}.portal-tabs a.active strong{background:#dff1e7;color:var(--accent)}.portal-job-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.portal-job{margin:0;display:flex;flex-direction:column}.portal-job h2{margin:3px 0 18px;font-size:21px;overflow-wrap:anywhere}.portal-job .vendor-meta{margin-bottom:22px}.portal-job .button{margin-top:auto}.badge.pending{background:#fff1d5;color:#895f13}.badge.submitted{background:#e6f4ea;color:#246a42}.badge.closed{background:#edf0ef;color:#5f6c68}
@media(max-width:1000px){.supplier-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){
 .portal-job-grid{grid-template-columns:1fr}
 .list-toolbar{align-items:stretch;flex-direction:column}.list-toolbar .tabs{align-self:flex-start}
 .dashboard{background:transparent;border:0;box-shadow:none;overflow:visible;padding-top:5px}
 .dashboard>.section-heading{padding:0 0 15px;margin:0}
 table tbody{display:grid;grid-template-columns:1fr 1fr;gap:16px}
 table tr{background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px;margin:0;box-shadow:0 4px 12px #16392004}
 table td{font-size:14px;padding:6px 0;align-items:center;min-width:0}
 td:first-child{padding-bottom:12px;border-bottom:1px solid #eef3ef;margin-bottom:8px}.job-link{font-size:17px;line-height:1.4}
 td:last-child{margin-top:10px;padding-top:12px;border-top:1px solid var(--line)}
 td:last-child:before{display:none}.row-actions{width:100%}.row-actions>*{flex:1}.row-actions .button{min-height:42px;width:100%}
 .section-heading{gap:8px}.actions .button{min-height:44px}
}
@media(max-width:480px){
 body{font-size:15px}.nav{padding:15px 17px}.brand-icon{border-radius:12px;width:38px;height:40px}
 .brand small{font-size:10px}.brand{gap:10px}.text-button{font-size:12px;padding:8px 0 8px 10px;min-height:40px}
 .container{padding:24px 16px 100px}.vendor-container{padding:18px 14px 96px}
 .workspace-nav{position:fixed;bottom:0;left:0;right:0;z-index:10;margin:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #dbe7df;border-bottom:0;background:#fffffffa;box-shadow:0 -4px 20px #1f47370c;justify-content:space-around;gap:3px}
 .workspace-nav a{padding:11px 10px;font-size:12px;text-align:center}.workspace-nav a:last-child{margin-left:0;background:var(--accent);color:white}
 .page-heading h1{font-size:27px;letter-spacing:-.8px}.page-heading{gap:18px;margin-bottom:23px}
 .page-heading>.button{width:100%}.page-heading .muted{font-size:14px;line-height:1.6}
 .eyebrow{font-size:10px;letter-spacing:1.6px;margin-bottom:10px}
 .card{border-radius:15px;padding:21px 18px;margin-bottom:18px}
 .stats{gap:10px;margin-bottom:23px}.stat{display:block;padding:15px 17px;border-radius:13px}.stat span{display:block;font-size:12px}.stat strong{display:block;font-size:28px;margin-top:5px;line-height:1.15}
 table tbody{grid-template-columns:1fr}.dashboard{padding:0}.dashboard>.section-heading{padding:0 0 14px}
 .search input{font-size:16px}.tabs{width:100%}.tabs a{flex:1;text-align:center}
 .list-toolbar{gap:14px}.supplier-grid{grid-template-columns:1fr;gap:0}
 .supplier-card .actions>*{flex:1}.supplier-card .actions form .button{width:100%}
 .danger-zone{display:block}.danger-zone form{margin-top:15px}.danger-zone .button{width:100%}
 .actions{gap:8px;width:100%}.page-heading .actions>*{flex:1}.page-heading .actions form .button{width:100%}
 .quote-actions{gap:10px}.quote-actions>*{flex-basis:100%}
 .share{gap:16px}.share>form{width:100%}.share>form .button{width:100%}
 .copy-row .button{flex:1}.form-actions{position:relative;justify-content:stretch;gap:10px}.form-actions>*{flex:1}
 input,textarea{border-radius:10px;padding:13px 12px;font-size:16px}.form-grid{gap:18px}.checkbox-grid{gap:10px}.checkbox-grid .check{padding:10px;background:#f5f8f5;border-radius:8px}
 .job-meta{padding:20px}.job-meta strong{font-size:17px;overflow-wrap:anywhere}
 .vendor-container .card{padding:20px 17px}.vendor-container .vendor-heading{padding:22px 19px;margin-bottom:16px}
 .portal-login{margin:18px 0;padding:26px 20px}.portal-login h1{font-size:28px}.portal-tabs{grid-template-columns:1fr 1fr;gap:6px;padding:5px}.portal-tabs a{padding:11px 12px}.portal-job-grid{gap:14px}.portal-job{padding:20px 18px}.portal-job h2{font-size:19px}.portal-heading{margin-top:0}
 .requirement-card{padding:19px 15px!important}.requirement-card .section-heading{padding:0 2px}.requirement-table{border-radius:10px}.requirement-row{grid-template-columns:minmax(116px,42%) minmax(0,58%)}.requirement-row dt,.requirement-row dd{padding:12px 11px}.requirement-row dt{font-size:12px;line-height:1.4}.requirement-row dd{font-size:14px;line-height:1.45}
 .vendor-heading h1{font-size:27px;line-height:1.25}.vendor-heading>p{font-size:13px}
 .vendor-container .section-heading{flex-direction:row;align-items:center}.vendor-container .section-heading .muted{font-size:11px}
 .vendor-container .details dt{font-size:11px;letter-spacing:.3px}.vendor-container .details dd{font-size:14px}
 .charge-grid{gap:0 14px}.amount-input input{font-size:21px;padding:12px 9px;min-height:50px}
 .radio-row{display:grid;grid-template-columns:1fr;gap:10px}.radio-row .check{border:1px solid var(--line);padding:12px;border-radius:9px;font-size:14px}
 .submit-panel .total-box{margin-top:20px}.confirmation{font-size:13px;align-items:flex-start;line-height:1.6}.confirmation input{margin-top:3px}
 .mobile-total{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:9;background:#fff;border-top:1px solid #cddfd4;box-shadow:0 -3px 20px #1536230d;padding:11px 18px calc(11px + env(safe-area-inset-bottom));align-items:center;justify-content:space-between;gap:14px}
 .mobile-total span{display:block;font-size:10px;letter-spacing:.8px;color:var(--muted)}.mobile-total strong{display:block;color:var(--accent);font-size:23px;overflow-wrap:anywhere}.mobile-total .button{min-width:112px}
 .vendor-container:has(.mobile-total)~.footer{padding-bottom:90px}
 .footer{font-size:10px}.revision summary{gap:8px;grid-template-columns:1fr}.revision summary strong{font-size:20px}.related-job{flex-wrap:wrap}
}
@media print{.workspace-nav,.mobile-total{display:none!important}.container{padding:0}.card{border-radius:0;box-shadow:none}.view-grid>div{display:block}.vendor-heading{background:white!important}.notice{display:none}.page-heading h1{font-size:23px}}
