:root{
    --nsd-bg:var(--an-bg,#f8f4ee);
    --nsd-card:#fff;
    --nsd-ink:var(--an-dark,#151515);
    --nsd-muted:var(--an-muted,#5b5b5b);
    --nsd-border:var(--an-border,#e6ddcf);
    --nsd-accent:var(--nomad-green,var(--an-contact-green,#061f16));
    --nsd-accent-2:var(--an-contact-green-2,#0b3a28);
    --nsd-gold:var(--an-contact-gold,#c8aa5f);
    --nsd-panel:#fffaf1;
    --nsd-soft:#f8f4ec;
    --nsd-radius:24px;
    --nsd-field-height:56px;
}

.nsd-portal{
    max-width:1100px;
    margin:0 auto;
    color:var(--nsd-ink);
}

.nsd-portal *{box-sizing:border-box}

.nsd-card{
    background:var(--nsd-card);
    border:1px solid rgba(6,31,22,.10);
    border-radius:var(--nsd-radius);
    padding:clamp(20px,3vw,30px);
    margin:20px 0;
    box-shadow:0 18px 58px rgba(8,36,25,.075);
}

.nsd-card h2,
.nsd-card h3,
.nsd-card h4{margin-top:0;color:var(--nsd-accent);letter-spacing:-.025em}

.nsd-kpis{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
    gap:16px;
    margin:20px 0;
}

.nsd-kpi{
    border:1px solid rgba(6,31,22,.10);
    border-radius:20px;
    padding:18px;
    background:linear-gradient(180deg,#fff,#fbf6ec);
    box-shadow:0 12px 34px rgba(8,36,25,.055);
}

.nsd-kpi span{
    display:block;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:#806f58;
    font-weight:900;
}

.nsd-kpi strong{
    display:block;
    font-size:28px;
    line-height:1.1;
    margin-top:6px;
    color:var(--nsd-ink);
}

.nsd-form{display:grid;gap:16px}

.nsd-form label{
    display:block;
    font-weight:850;
    color:var(--nsd-ink);
    margin:0;
    line-height:1.25;
}

.nsd-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]),
.nsd-form select,
.nsd-form textarea,
.nsd-portal .login-username input,
.nsd-portal .login-password input{
    width:100%;
    max-width:100%;
    min-height:var(--nsd-field-height);
    box-sizing:border-box;
    margin-top:8px;
    padding:14px 16px;
    border:1px solid rgba(6,31,22,.16);
    border-radius:14px;
    background:#fff;
    color:var(--nsd-ink);
    font-size:16px;
    line-height:1.35;
    box-shadow:0 1px 0 rgba(255,255,255,.8) inset;
    transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;
}

.nsd-form select{
    appearance:auto;
    padding-right:38px;
}

.nsd-form textarea{
    min-height:150px;
    resize:vertical;
}

.nsd-form input:focus,
.nsd-form select:focus,
.nsd-form textarea:focus,
.nsd-portal .login-username input:focus,
.nsd-portal .login-password input:focus{
    outline:none;
    border-color:var(--nsd-gold);
    box-shadow:0 0 0 4px rgba(200,170,95,.20);
}

.nsd-form input::placeholder,
.nsd-form textarea::placeholder{color:#8b938d}

.nsd-form input[type="checkbox"],
.nsd-form input[type="radio"]{
    width:auto;
    min-width:0;
    margin:0 9px 0 0;
    transform:translateY(1px);
}

.nsd-form label:has(input[type="checkbox"]),
.nsd-form label:has(input[type="radio"]){
    display:flex;
    align-items:center;
    gap:8px;
    font-weight:750;
    color:var(--nsd-muted);
}

.nsd-form button,
.nsd-portal input[type="submit"],
.nsd-portal .button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:52px;
    border:0;
    border-radius:999px;
    padding:14px 22px;
    background:linear-gradient(135deg,var(--nsd-accent),var(--nsd-accent-2));
    color:#fff;
    cursor:pointer;
    font-weight:900;
    font-size:15px;
    line-height:1.1;
    text-decoration:none;
    box-shadow:0 14px 34px rgba(8,36,25,.16);
    transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease;
}

.nsd-form button:hover,
.nsd-form button:focus,
.nsd-portal input[type="submit"]:hover,
.nsd-portal input[type="submit"]:focus,
.nsd-portal .button:hover,
.nsd-portal .button:focus{
    transform:translateY(-1px);
    box-shadow:0 18px 42px rgba(8,36,25,.20);
    color:#fff;
}

.nsd-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:20px;
    align-items:start;
}

.nsd-row{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:16px;
    align-items:start;
}

.nsd-inline{
    display:flex;
    gap:14px;
    align-items:end;
    flex-wrap:wrap;
}

.nsd-inline label{min-width:220px;flex:1}
.nsd-filter{margin:14px 0}

.nsd-table{
    width:100%;
    border-collapse:collapse;
    margin:14px 0;
    background:#fff;
    border:1px solid var(--nsd-border);
    border-radius:16px;
    overflow:hidden;
}

.nsd-table th,
.nsd-table td{
    border-bottom:1px solid var(--nsd-border);
    padding:12px 14px;
    text-align:left;
    vertical-align:top;
}

.nsd-table th{
    background:#faf8f4;
    color:#806f58;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.nsd-ticket{
    border:1px solid rgba(6,31,22,.10);
    border-radius:18px;
    margin:12px 0;
    padding:16px;
    background:#fff;
    box-shadow:0 10px 32px rgba(8,36,25,.055);
}

.nsd-ticket summary{cursor:pointer;line-height:1.45}

.nsd-reply{
    border-top:1px solid var(--nsd-border);
    margin-top:14px;
    padding-top:14px;
}

.nsd-muted{color:var(--nsd-muted);font-weight:400}

.nsd-badge{
    display:inline-block;
    border-radius:999px;
    padding:4px 10px;
    font-size:12px;
    font-weight:850;
    background:#f0f0f1;
    margin-left:5px;
}

.nsd-status-open{background:#e7f5ff;color:#084298}
.nsd-status-pending{background:#fff3cd;color:#664d03}
.nsd-status-waiting{background:#f8f9fa;color:#41464b}
.nsd-status-resolved{background:#d1e7dd;color:#0a3622}
.nsd-status-closed{background:#e2e3e5;color:#41464b}

.nsd-internal{background:#fff8e5;border-color:#e8cf80}

.nsd-ticket-meta{
    background:var(--nsd-soft);
    border:1px solid rgba(6,31,22,.08);
    border-radius:16px;
    padding:14px;
    margin:14px 0;
}

.nsd-resource-pills{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 14px}

.nsd-resource-pills label{
    display:inline-flex;
    align-items:center;
    gap:8px;
    border:1px solid rgba(6,31,22,.14);
    border-radius:999px;
    padding:9px 12px;
    background:#fff;
    font-weight:700;
    color:var(--nsd-ink);
}

.nsd-resource-pills input{margin:0}

.nsd-agent-update{border-top:1px solid var(--nsd-border);margin-top:16px;padding-top:16px}

.nsd-signature-pad{
    border:1px dashed rgba(6,31,22,.30);
    border-radius:18px;
    background:var(--nsd-soft);
    padding:12px;
    margin-top:10px;
}

.nsd-signature-canvas{
    width:100%;
    height:230px;
    display:block;
    background:#fff;
    border:1px solid rgba(6,31,22,.14);
    border-radius:14px;
    touch-action:none;
}

.nsd-signature-actions{margin-top:10px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}

.nsd-signature-actions button,
.nsd-clear-signature{
    min-height:44px!important;
    border:1px solid rgba(6,31,22,.24)!important;
    background:#fff!important;
    color:var(--nsd-ink)!important;
    box-shadow:none!important;
}

.nsd-signature-list{display:grid;gap:14px;margin:14px 0}

.nsd-signature-record{
    border:1px solid rgba(6,31,22,.10);
    border-radius:18px;
    padding:16px;
    background:#fbfbfc;
}

.nsd-signature-image{
    display:block;
    max-width:360px;
    width:100%;
    height:auto;
    border:1px solid rgba(6,31,22,.14);
    background:#fff;
    border-radius:12px;
    margin-top:10px;
}

.nsd-signoff-inline{border-top:1px solid var(--nsd-border);margin-top:16px;padding-top:16px}

.nsd-notice{
    padding:14px 16px;
    border-radius:16px;
    margin:16px 0;
    border:1px solid #c3e6cb;
    background:#d1e7dd;
    color:#0a3622;
}

.nsd-success{font-weight:600}

.nsd-portal .login-form,
.nsd-portal #loginform{
    background:#fff;
    border:1px solid rgba(6,31,22,.10);
    border-radius:20px;
    padding:20px;
    box-shadow:0 14px 40px rgba(8,36,25,.06);
}

@media(max-width:720px){
    .nsd-card{padding:20px;border-radius:20px}
    .nsd-row{grid-template-columns:1fr;gap:14px}
    .nsd-inline{display:grid;grid-template-columns:1fr;align-items:stretch}
    .nsd-inline label{min-width:0;width:100%}
    .nsd-form button,.nsd-portal input[type="submit"],.nsd-portal .button{width:100%}
    .nsd-table{display:block;overflow-x:auto}
}

/* Customer-facing analytics and PDF reporting */
.nsd-customer-report{
    border-color:rgba(200,170,95,.26);
    background:linear-gradient(180deg,#fff,#fffaf1);
}

.nsd-report-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:16px;
}

.nsd-report-header h3{margin-bottom:6px}

.nsd-report-download{
    white-space:nowrap;
}

.nsd-report-filter{
    border:1px solid rgba(6,31,22,.10);
    border-radius:18px;
    padding:16px;
    background:#fff;
    margin-bottom:18px;
}

.nsd-report-filter-action span{display:block;height:1.25em}

.nsd-report-kpis{
    grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
}

.nsd-report-inner{
    margin:0;
    box-shadow:none;
    background:#fff;
}

.nsd-report-grid{
    margin-top:16px;
    margin-bottom:18px;
}

.nsd-report-table th,
.nsd-report-table td{
    font-size:14px;
}

.nsd-report-table .nsd-badge{
    margin-left:0;
}

@media(max-width:720px){
    .nsd-report-header{display:grid;grid-template-columns:1fr}
    .nsd-report-download{width:100%}
}

/* Pro attachments */
.nsd-attachments{
    margin:12px 0;
    padding:12px 14px;
    border:1px solid rgba(6,31,22,.10);
    border-radius:14px;
    background:#fff;
}
.nsd-attachments ul{margin:8px 0 0 18px;padding:0}
.nsd-attachments li{margin:6px 0}
.nsd-attachments a{font-weight:700;text-decoration:none}
.nsd-ticket-files{border-style:dashed}
.nsd-form input[type="file"]{
    width:100%;
    min-height:56px;
    padding:14px 16px;
    border:1px solid rgba(6,31,22,.14);
    border-radius:14px;
    background:#fff;
    box-sizing:border-box;
}


/* Pro inbound email template download */
.nsd-email-template-box{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:16px;
    margin:0 0 18px;
    border:1px dashed rgba(200,170,95,.65);
    border-radius:18px;
    background:#fffaf1;
}
.nsd-email-template-box p{margin:.35rem 0 0}
.nsd-portal .button.nsd-secondary{
    background:#fff;
    color:var(--nsd-accent);
    border:1px solid rgba(6,31,22,.18);
    box-shadow:0 10px 24px rgba(8,36,25,.08);
}
.nsd-portal .button.nsd-secondary:hover,
.nsd-portal .button.nsd-secondary:focus{
    color:var(--nsd-accent);
    background:#fffaf1;
}
@media(max-width:720px){
    .nsd-email-template-box{display:grid;grid-template-columns:1fr}
}

/* Pro quote/proposal and onsite fields */
.nsd-quote-requested{background:#fff3cd;color:#664d03}.nsd-quote-drafted{background:#cff4fc;color:#055160}.nsd-quote-sent{background:#e7f5ff;color:#084298}.nsd-quote-accepted{background:#d1e7dd;color:#0a3622}.nsd-quote-declined{background:#f8d7da;color:#58151c}.nsd-quote-converted{background:#e2e3e5;color:#41464b}
.nsd-onsite-fields{border:1px dashed rgba(200,170,95,.65);border-radius:18px;background:#fffaf1;padding:16px;margin:6px 0 16px}

.nsd-ai-first{margin-bottom:24px}.nsd-ai-first .nomad-ai-support-widget{margin-top:12px}
