:root {
    color-scheme: light;
    --nt-primary: #4361ee;
    --nt-primary-strong: #3046c9;
    --nt-secondary: #3f37c9;
    --nt-blue: #2563eb;
    --nt-page: #f5f7ff;
    --nt-surface: #ffffff;
    --nt-surface-soft: #f8fafc;
    --nt-surface-muted: #f1f5f9;
    --nt-text: #1a1a2e;
    --nt-text-soft: #475569;
    --nt-muted: #64748b;
    --nt-border: #dce3ed;
    --nt-border-strong: #cbd5e1;
    --nt-shadow: 0 10px 28px rgba(15, 23, 42, .065);
    --nt-shadow-hover: 0 20px 38px rgba(15, 23, 42, .12);
    --nt-radius: 18px;
}

html.dark {
    color-scheme: dark;
    --nt-page: #0f172a;
    --nt-surface: #1e293b;
    --nt-surface-soft: #172033;
    --nt-surface-muted: #111827;
    --nt-text: #f1f5f9;
    --nt-text-soft: #cbd5e1;
    --nt-muted: #94a3b8;
    --nt-border: #334155;
    --nt-border-strong: #475569;
    --nt-shadow: 0 12px 30px rgba(0, 0, 0, .22);
    --nt-shadow-hover: 0 22px 42px rgba(0, 0, 0, .32);
}

*, *::before, *::after { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; }
body.portal-body {
    min-height: 100vh;
    margin: 0;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    background:
        radial-gradient(circle at 3% 3%, rgba(67, 97, 238, .055), transparent 26rem),
        var(--nt-page);
    color: var(--nt-text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-feature-settings: "cv02", "cv03", "cv04", "cv11";
    -webkit-font-smoothing: antialiased;
    transition: background-color .25s ease, color .25s ease;
}

button, input, select, textarea { font: inherit; }
a { color: inherit; }
[hidden] { display: none !important; }

.portal-header {
    position: sticky;
    top: 0;
    z-index: 50;
    color: #fff;
    background: linear-gradient(118deg, #172554 0%, #1e3a8a 38%, #2563eb 100%);
    border-bottom: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 8px 28px rgba(30,58,138,.2);
}
html.dark .portal-header { background: linear-gradient(118deg, #0b1220 0%, #111827 38%, #1e3a8a 100%); }
.portal-header__inner {
    width: 100%;
    max-width: 1920px;
    min-height: 80px;
    margin: 0 auto;
    padding: 10px clamp(16px, 3vw, 56px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}
.portal-brand { min-width: 0; display: flex; align-items: center; gap: 22px; }
.portal-brand__ntec { width: auto; height: 50px; object-fit: contain; filter: drop-shadow(0 4px 10px rgba(0,0,0,.14)); }
.portal-brand__text { min-width: 0; padding-left: 22px; border-left: 1px solid rgba(255,255,255,.22); }
.portal-brand__eyebrow { margin: 0; color: #bfdbfe; font-size: 12px; font-weight: 700; }
.portal-brand__greeting { margin: 3px 0 0; overflow: hidden; color: #fff; font-size: 17px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.portal-header__actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; }
.header-button {
    min-width: 42px;
    height: 42px;
    padding: 0 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 12px;
    background: rgba(255,255,255,.07);
    color: #fff;
    cursor: pointer;
    text-decoration: none;
    transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.header-button:hover { transform: translateY(-1px); border-color: rgba(255,255,255,.3); background: rgba(255,255,255,.14); }
.header-button__copy { text-align: left; line-height: 1.05; }
.header-button__copy strong { display: block; font-size: 12px; }
.header-button__copy small { display: block; margin-top: 4px; color: #bfdbfe; font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.supplier-chip {
    height: 48px;
    max-width: 290px;
    padding: 4px 12px 4px 5px;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 13px;
    background: rgba(255,255,255,.08);
}
.supplier-chip__avatar { width: 38px; height: 38px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 10px; background: #fff; color: #1e3a8a; font-size: 13px; font-weight: 900; }
.supplier-chip__content { min-width: 0; }
.supplier-chip__name { margin: 0; overflow: hidden; color: #fff; font-size: 11px; font-weight: 900; text-overflow: ellipsis; white-space: nowrap; }
.supplier-chip__meta { margin: 2px 0 0; overflow: hidden; color: #bfdbfe; font-size: 9px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.supplier-chip select { max-width: 210px; border: 0; background: transparent; color: #fff; font-size: 11px; font-weight: 900; outline: none; }
.supplier-chip select option { color: #0f172a; }
.supplier-chip__select-row { min-width:0;display:flex;align-items:center;gap:6px; }
.supplier-chip__select-row select { min-width:0;flex:1;text-overflow:ellipsis; }
.supplier-chip__select-row i { flex:0 0 auto;color:#bfdbfe;font-size:8px;pointer-events:none; }
.portal-brand__novatec { width: auto; height: 39px; margin-left: 4px; object-fit: contain; }

.portal-main { width: 100%; max-width: 1920px; margin: 0 auto; padding: 32px clamp(16px, 3vw, 56px) 54px; flex: 1; }
.portal-container { width: 100%; max-width: 1800px; margin: 0 auto; }
.portal-footer { position: relative; overflow: hidden; padding: 26px clamp(16px,3vw,56px); background: linear-gradient(175deg,#0d1929,#07101e 65%,#040b15); color: #94a3b8; }
.portal-footer::before { content:""; position:absolute; inset:0 0 auto; height:2px; background:linear-gradient(90deg,transparent,#4361ee,#a855f7,#4361ee,transparent); }
.portal-footer__inner { max-width: 1800px; margin: 0 auto; display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:12px; }
.portal-footer strong { color:#e2e8f0; }
.portal-footer__links { display:flex; align-items:center; gap:14px; }
.portal-footer__links a { color:#94a3b8; text-decoration:none; transition:color .18s; }
.portal-footer__links a:hover { color:#fff; }

.breadcrumb { margin: 0 0 18px; display: flex; align-items: center; flex-wrap: wrap; gap: 9px; color: var(--nt-muted); font-size: 12px; font-weight: 650; }
.breadcrumb a { display: inline-flex; align-items: center; gap: 7px; text-decoration: none; transition: color .18s; }
.breadcrumb a:hover { color: var(--nt-primary); }
.breadcrumb__separator { color: #cbd5e1; font-size: 8px; }
.breadcrumb__current { color: var(--nt-text); font-weight: 800; }
.page-heading { margin-bottom: 26px; display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; }
.page-heading__back { width: 42px; height: 42px; flex: 0 0 auto; display:grid; place-items:center; border:1px solid var(--nt-border); border-radius:12px; background:var(--nt-surface); color:var(--nt-text-soft); text-decoration:none; box-shadow:0 3px 10px rgba(15,23,42,.04); transition:.18s; }
.page-heading__back:hover { border-color:var(--nt-primary); color:var(--nt-primary); transform:translateX(-2px); }
.page-heading__content { min-width: 0; flex: 1; }
.page-heading__kicker { margin: 0 0 5px; color: var(--nt-primary); font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.page-heading h1 { margin: 0; color: var(--nt-text); font-size: clamp(27px,3vw,38px); font-weight: 850; letter-spacing: -.04em; line-height:1.1; }
.page-heading__description { max-width: 800px; margin: 8px 0 0; color: var(--nt-muted); font-size: 14px; font-weight: 500; line-height: 1.6; }
.page-heading__actions { flex: 0 0 auto; display:flex; align-items:center; gap:10px; }
.page-heading-shell { margin-bottom:26px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:15px;align-items:start; }
.page-heading-shell .page-heading__back { margin-top:0; }
.page-heading-shell .breadcrumb { min-height:42px;margin:0;align-content:center; }
.page-heading-shell .page-heading { margin:8px 0 0; }

.nt-card { border:1px solid var(--nt-border); border-radius:var(--nt-radius); background:var(--nt-surface); box-shadow:var(--nt-shadow); }
.nt-card--interactive { transition:transform .25s cubic-bezier(.4,0,.2,1), box-shadow .25s ease, border-color .25s ease; }
.nt-card--interactive:hover { transform:translateY(-4px); border-color:#c7d2fe; box-shadow:var(--nt-shadow-hover); }
html.dark .nt-card--interactive:hover { border-color:#475569; }
.nt-card__header { padding:20px 22px; display:flex; align-items:center; justify-content:space-between; gap:18px; border-bottom:1px solid var(--nt-border); }
.nt-card__title { margin:0; color:var(--nt-text); font-size:16px; font-weight:850; }
.nt-card__subtitle { margin:4px 0 0; color:var(--nt-muted); font-size:12px; font-weight:500; }

.kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:15px; margin-bottom:22px; }
.kpi-card { min-height:154px; position:relative; overflow:hidden; border:1px solid var(--nt-border); border-radius:16px; background:var(--nt-surface); box-shadow:var(--nt-shadow); transition:transform .25s ease, box-shadow .25s ease; }
.kpi-card:hover { transform:translateY(-5px); box-shadow:var(--nt-shadow-hover); }
.kpi-card__bar { height:5px; width:100%; }
.kpi-card__body { position:relative; z-index:2; padding:17px 18px 18px; }
.kpi-card__top { display:flex; align-items:flex-start; justify-content:space-between; }
.kpi-card__icon { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; font-size:16px; transition:transform .25s ease, color .25s, background .25s; }
.kpi-card:hover .kpi-card__icon { transform:scale(1.08); }
.kpi-card__watermark { position:absolute; right:-12px; bottom:-20px; z-index:1; font-size:74px; opacity:.055; transform:rotate(-7deg); transition:transform .35s ease, opacity .35s; }
.kpi-card:hover .kpi-card__watermark { opacity:.1; transform:scale(1.12) rotate(-10deg); }
.kpi-card__value { margin:14px 0 0; color:var(--nt-text); font-size:30px; font-weight:900; line-height:1; }
.kpi-card__label { margin:7px 0 0; color:var(--nt-muted); font-size:10px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.kpi-card__hint { margin:5px 0 0; color:var(--nt-muted); font-size:11px; }
.tone-emerald .kpi-card__bar { background:linear-gradient(90deg,#10b981,#14b8a6); }.tone-emerald .kpi-card__icon { background:#d1fae5;color:#059669; }.tone-emerald .kpi-card__watermark { color:#10b981; }
.tone-amber .kpi-card__bar { background:linear-gradient(90deg,#f59e0b,#f97316); }.tone-amber .kpi-card__icon { background:#fef3c7;color:#d97706; }.tone-amber .kpi-card__watermark { color:#f59e0b; }
.tone-blue .kpi-card__bar { background:linear-gradient(90deg,#3b82f6,#4f46e5); }.tone-blue .kpi-card__icon { background:#dbeafe;color:#2563eb; }.tone-blue .kpi-card__watermark { color:#3b82f6; }
.tone-violet .kpi-card__bar { background:linear-gradient(90deg,#8b5cf6,#d946ef); }.tone-violet .kpi-card__icon { background:#ede9fe;color:#7c3aed; }.tone-violet .kpi-card__watermark { color:#8b5cf6; }
html.dark .tone-emerald .kpi-card__icon { background:rgba(16,185,129,.15);color:#6ee7b7; } html.dark .tone-amber .kpi-card__icon { background:rgba(245,158,11,.15);color:#fcd34d; } html.dark .tone-blue .kpi-card__icon { background:rgba(59,130,246,.15);color:#93c5fd; } html.dark .tone-violet .kpi-card__icon { background:rgba(139,92,246,.15);color:#c4b5fd; }

.toolbar { margin-bottom:18px; padding:15px; display:flex; align-items:center; justify-content:space-between; gap:12px; border:1px solid var(--nt-border); border-radius:15px; background:var(--nt-surface); box-shadow:0 4px 15px rgba(15,23,42,.04); }
.toolbar__search { min-width:220px; max-width:420px; flex:1; position:relative; }
.toolbar__search i { position:absolute; left:13px; top:50%; transform:translateY(-50%); color:var(--nt-muted); font-size:12px; }
.toolbar__search input { width:100%; height:40px; padding:0 12px 0 36px; border:1px solid var(--nt-border); border-radius:11px; background:var(--nt-surface-soft); color:var(--nt-text); outline:none; transition:.18s; }
.toolbar__search input:focus { border-color:var(--nt-primary); box-shadow:0 0 0 3px rgba(67,97,238,.12); }
.toolbar__filters { display:flex; align-items:center; gap:8px; }
.filter-button { height:40px; padding:0 13px; display:inline-flex; align-items:center; gap:7px; border:1px solid var(--nt-border); border-radius:11px; background:var(--nt-surface-soft); color:var(--nt-text-soft); font-size:11px; font-weight:800; cursor:pointer; transition:.18s; }
.filter-button:hover,.filter-button.is-active { border-color:#a5b4fc; background:#eef2ff; color:#4f46e5; }
html.dark .filter-button:hover,html.dark .filter-button.is-active { border-color:#4f46e5;background:rgba(79,70,229,.16);color:#a5b4fc; }

.quote-list { overflow:hidden; }
.quote-table { width:100%; border-collapse:collapse; }
.quote-table th { padding:13px 20px; background:var(--nt-surface-soft); color:var(--nt-muted); font-size:10px; font-weight:900; letter-spacing:.08em; text-align:left; text-transform:uppercase; }
.quote-table td { padding:16px 20px; border-top:1px solid var(--nt-border); color:var(--nt-text-soft); font-size:13px; vertical-align:middle; }
.quote-table tbody tr { transition:background .18s; }
.quote-table tbody tr:hover { background:rgba(99,102,241,.035); }
html.dark .quote-table tbody tr:hover { background:rgba(99,102,241,.08); }
.quote-table__number { margin:0;color:var(--nt-text);font-size:13px;font-weight:900; }.quote-table__description { max-width:520px;margin:4px 0 0;overflow:hidden;color:var(--nt-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap; }
.status-badge { display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border:1px solid transparent; border-radius:999px; font-size:10px; font-weight:900; white-space:nowrap; }
.status-badge::before { content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }
.status-badge--icon::before { display:none; }
.status-open { background:#dcfce7;color:#166534;border-color:#bbf7d0; }.status-progress { background:#fef3c7;color:#92400e;border-color:#fde68a; }.status-sent { background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe; }.status-closed { background:#f1f5f9;color:#475569;border-color:#e2e8f0; }
html.dark .status-open { background:rgba(22,163,74,.15);color:#4ade80;border-color:rgba(34,197,94,.3); } html.dark .status-progress { background:rgba(217,119,6,.15);color:#fbbf24;border-color:rgba(251,191,36,.3); } html.dark .status-sent { background:rgba(37,99,235,.15);color:#93c5fd;border-color:rgba(59,130,246,.3); } html.dark .status-closed { background:rgba(71,85,105,.22);color:#cbd5e1;border-color:#475569; }
.quote-table th:nth-child(1) { width:29%; }.quote-table th:nth-child(2) { width:12%; }.quote-table th:nth-child(3) { width:23%; }.quote-table th:nth-child(4) { width:18%; }.quote-table th:nth-child(5) { width:18%; }
.quote-table tbody tr[data-link] { cursor:pointer; }
.quote-table tbody tr[data-link]:hover { background:rgba(67,97,238,.065);box-shadow:inset 3px 0 0 var(--nt-primary); }
html.dark .quote-table tbody tr[data-link]:hover { background:rgba(99,102,241,.12); }
.deadline { display:inline-flex;align-items:center;gap:7px; }.deadline i { color:var(--nt-muted);font-size:10px; }.deadline-urgent { color:#b45309;font-weight:850; }.deadline-urgent i { color:#f59e0b; }.deadline-expired { color:#be123c;font-weight:850; }.deadline-expired i { color:#e11d48; }
html.dark .deadline-urgent { color:#fbbf24; } html.dark .deadline-expired { color:#fda4af; }

.btn-primary,.btn-secondary,.btn-danger,.btn-ghost { min-height:42px; padding:0 16px; display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:11px; font-size:12px; font-weight:850; text-decoration:none; cursor:pointer; transition:transform .18s ease, box-shadow .18s, filter .18s, background .18s, border-color .18s; }
.btn-primary { border:0;background:linear-gradient(135deg,var(--nt-primary),var(--nt-blue));color:#fff;box-shadow:0 7px 16px rgba(67,97,238,.23); }.btn-primary:hover { transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 10px 22px rgba(67,97,238,.3); }
.btn-secondary { border:1px solid var(--nt-border-strong);background:var(--nt-surface);color:var(--nt-text-soft); }.btn-secondary:hover { transform:translateY(-1px);border-color:var(--nt-primary);color:var(--nt-primary);background:#f8faff; } html.dark .btn-secondary:hover { background:rgba(67,97,238,.1); }
.btn-danger { border:1px solid #fecaca;background:#fff1f2;color:#be123c; }.btn-danger:hover { background:#ffe4e6; }.btn-ghost { border:0;background:transparent;color:var(--nt-muted); }.btn-ghost:hover { background:var(--nt-surface-muted);color:var(--nt-text); }

.notice { margin-bottom:20px;padding:15px 17px;display:flex;align-items:flex-start;gap:12px;border:1px solid;border-radius:14px;font-size:12px;font-weight:600;line-height:1.55; }.notice i { margin-top:2px;font-size:16px; }.notice--success { border-color:#a7f3d0;background:#ecfdf5;color:#047857; }.notice--error { border-color:#fecaca;background:#fef2f2;color:#b91c1c; }.notice--info { border-color:#bfdbfe;background:#eff6ff;color:#1e40af; }.notice--warning { border-color:#fde68a;background:#fffbeb;color:#92400e; }
html.dark .notice--success { border-color:rgba(16,185,129,.3);background:rgba(16,185,129,.1);color:#6ee7b7; } html.dark .notice--error { border-color:rgba(239,68,68,.3);background:rgba(239,68,68,.1);color:#fca5a5; } html.dark .notice--info { border-color:rgba(59,130,246,.3);background:rgba(59,130,246,.1);color:#93c5fd; } html.dark .notice--warning { border-color:rgba(245,158,11,.3);background:rgba(245,158,11,.1);color:#fcd34d; }

.quote-summary { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr); gap:16px; margin-bottom:20px; }
.quote-summary__main { position:relative; overflow:hidden; padding:23px; }.quote-summary__main::after { content:"\f15c"; position:absolute; right:12px; bottom:-34px; color:var(--nt-primary); font-family:"Font Awesome 6 Free"; font-size:128px; font-weight:900; opacity:.045; transform:rotate(-8deg); }
.quote-summary__meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.meta-box { padding:15px; border:1px solid var(--nt-border); border-radius:13px; background:var(--nt-surface-soft); }.meta-box__label { margin:0;color:var(--nt-muted);font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase; }.meta-box__value { margin:5px 0 0;color:var(--nt-text);font-size:12px;font-weight:800;line-height:1.4; }
.assignment-card { padding:20px; display:flex; align-items:center; gap:15px; }.assignment-card__icon { width:46px;height:46px;flex:0 0 auto;display:grid;place-items:center;border-radius:13px;font-size:17px; }.assignment-card h2 { margin:0;color:var(--nt-text);font-size:14px;font-weight:850; }.assignment-card p { margin:4px 0 0;color:var(--nt-muted);font-size:11px;line-height:1.55; }.assignment-card__action { margin-left:auto;flex:0 0 auto; }

.item-stack { display:grid; gap:14px; padding:18px; }.proposal-item { position:relative;overflow:hidden;border:1px solid var(--nt-border);border-radius:15px;background:var(--nt-surface); }.proposal-item__bar { position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(#6366f1,#3b82f6); }.proposal-item__header { padding:17px 18px 15px 21px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:13px;align-items:start;border-bottom:1px solid var(--nt-border);background:var(--nt-surface-soft); }.proposal-item__number { width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#e0e7ff;color:#4338ca;font-size:11px;font-weight:900; }.proposal-item__code { margin:0;color:var(--nt-muted);font-size:9px;font-weight:900;letter-spacing:.07em;text-transform:uppercase; }.proposal-item__title { margin:4px 0 0;color:var(--nt-text);font-size:13px;font-weight:850;line-height:1.45; }.proposal-item__qty { text-align:right; }.proposal-item__qty strong { display:block;color:var(--nt-text);font-size:13px; }.proposal-item__qty small { color:var(--nt-muted);font-size:9px;font-weight:800;text-transform:uppercase; }.proposal-item__body { padding:18px 18px 18px 21px; }.form-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px; }.form-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.form-label { display:block;margin:0 0 7px;color:var(--nt-muted);font-size:9px;font-weight:900;letter-spacing:.075em;text-transform:uppercase; }.form-control { width:100%;min-height:43px;padding:10px 12px;border:1px solid var(--nt-border-strong);border-radius:11px;background:var(--nt-surface-soft);color:var(--nt-text);font-size:12px;font-weight:600;outline:none;transition:.18s; }.form-control:focus { border-color:var(--nt-primary);background:var(--nt-surface);box-shadow:0 0 0 3px rgba(67,97,238,.12); }.form-control::placeholder { color:#94a3b8; }.form-control[readonly] { opacity:.75;cursor:not-allowed; }.money-input { display:flex;align-items:stretch;overflow:hidden;border:1px solid var(--nt-border-strong);border-radius:11px;background:var(--nt-surface-soft);transition:.18s; }.money-input:focus-within { border-color:var(--nt-primary);background:var(--nt-surface);box-shadow:0 0 0 3px rgba(67,97,238,.12); }.money-input span { padding:0 11px;display:flex;align-items:center;border-right:1px solid var(--nt-border);color:var(--nt-muted);font-size:11px;font-weight:900; }.money-input input { min-width:0;flex:1;border:0;background:transparent;color:var(--nt-text);padding:10px 12px;text-align:right;font-size:12px;font-weight:850;outline:none; }
.attachment-area { margin-top:15px;padding-top:15px;border-top:1px solid var(--nt-border); }.attachment-list { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px; }.attachment { min-width:0;padding:9px 10px;display:flex;align-items:center;gap:9px;border:1px solid var(--nt-border);border-radius:10px;background:var(--nt-surface-soft);text-decoration:none; }.attachment__icon { width:31px;height:31px;flex:0 0 auto;display:grid;place-items:center;border-radius:9px;background:#e0e7ff;color:#4f46e5; }.attachment__content { min-width:0;flex:1; }.attachment__name { display:block;overflow:hidden;color:var(--nt-text);font-size:10px;font-weight:800;text-decoration:none;text-overflow:ellipsis;white-space:nowrap; }.attachment__meta { margin-top:2px;color:var(--nt-muted);font-size:9px; }.attachment__remove { display:flex;align-items:center;gap:5px;color:#e11d48;font-size:9px;font-weight:800;cursor:pointer; }.upload-box { min-height:82px;padding:13px;display:flex;align-items:center;justify-content:center;gap:12px;border:1.5px dashed #a5b4fc;border-radius:12px;background:rgba(238,242,255,.55);cursor:pointer;transition:.18s; }.upload-box:hover { border-color:var(--nt-primary);background:#eef2ff; }.upload-box__icon { width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#fff;color:var(--nt-primary);box-shadow:0 4px 12px rgba(67,97,238,.12); }.upload-box strong { display:block;color:var(--nt-text);font-size:11px; }.upload-box small { display:block;margin-top:3px;color:var(--nt-muted);font-size:9px; }.upload-box input { position:absolute;width:1px;height:1px;overflow:hidden;opacity:0; }
html.dark .proposal-item__number,html.dark .attachment__icon { background:rgba(79,70,229,.2);color:#a5b4fc; } html.dark .upload-box { border-color:#475569;background:rgba(15,23,42,.35); } html.dark .upload-box:hover { border-color:#6366f1;background:rgba(79,70,229,.12); } html.dark .upload-box__icon { background:#1e293b; }
.commercial-card { padding:20px; }.commercial-card textarea { min-height:100px;resize:vertical; }.sticky-actions { position:sticky;bottom:12px;z-index:20;margin-top:18px;padding:13px 15px;display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--nt-border);border-radius:15px;background:color-mix(in srgb,var(--nt-surface) 94%,transparent);box-shadow:0 18px 45px rgba(15,23,42,.18);backdrop-filter:blur(12px); }.sticky-actions__copy { display:flex;align-items:flex-start;gap:10px;color:var(--nt-muted);font-size:10px;line-height:1.5; }.sticky-actions__buttons { display:flex;align-items:center;gap:9px;flex:0 0 auto; }

.empty-state { padding:52px 20px;text-align:center; }.empty-state__icon { width:56px;height:56px;margin:0 auto;display:grid;place-items:center;border-radius:16px;background:#eef2ff;color:#4f46e5;font-size:20px; }.empty-state h3 { margin:14px 0 0;color:var(--nt-text);font-size:14px;font-weight:850; }.empty-state p { margin:5px auto 0;max-width:460px;color:var(--nt-muted);font-size:11px;line-height:1.6; }
.sent-proposal-total { min-width:155px;padding:11px 14px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;text-align:right; }.sent-proposal-total small { display:block;color:#64748b;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase; }.sent-proposal-total strong { display:block;margin-top:3px;color:#1d4ed8;font-size:17px;font-weight:900; }
html.dark .sent-proposal-total { border-color:rgba(59,130,246,.28);background:rgba(37,99,235,.1); }.sent-proposal-total strong { color:#3b82f6; } html.dark .sent-proposal-total strong { color:#93c5fd; }
.sent-attachment-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px; }.attachment--download { min-height:58px;transition:border-color .18s,background .18s,transform .18s; }.attachment--download:hover { transform:translateY(-1px);border-color:#a5b4fc;background:#eef2ff; }.attachment__download { color:var(--nt-primary);font-size:10px;font-weight:850;white-space:nowrap; }.attachment__icon--pdf { background:#fee2e2;color:#dc2626; }.attachment__icon--sheet { background:#dcfce7;color:#16a34a; }.attachment__icon--doc { background:#dbeafe;color:#2563eb; }.attachment__icon--image { background:#f3e8ff;color:#9333ea; }
html.dark .attachment--download:hover { border-color:#6366f1;background:rgba(79,70,229,.12); } html.dark .attachment__icon--pdf { background:rgba(220,38,38,.15);color:#fca5a5; } html.dark .attachment__icon--sheet { background:rgba(22,163,74,.15);color:#86efac; } html.dark .attachment__icon--doc { background:rgba(37,99,235,.15);color:#93c5fd; } html.dark .attachment__icon--image { background:rgba(147,51,234,.15);color:#d8b4fe; }

.nt-card,.kpi-card,.toolbar,.meta-box,.proposal-item,.form-control,.money-input,.attachment,.portal-footer { transition:background-color .22s ease,border-color .22s ease,color .22s ease,box-shadow .22s ease; }
:where(a,button,input,select,textarea):focus-visible { outline:3px solid rgba(67,97,238,.32);outline-offset:2px; }
.notice { animation:notice-in .28s ease both;box-shadow:0 8px 24px rgba(15,23,42,.06); }
@keyframes notice-in { from { opacity:0;transform:translateY(-7px); } to { opacity:1;transform:translateY(0); } }

.auth-body { min-height:100vh;margin:0;background:var(--nt-page);color:var(--nt-text);font-family:Inter,ui-sans-serif,system-ui,sans-serif;-webkit-font-smoothing:antialiased; }.auth-shell { min-height:100vh;display:grid;grid-template-columns:minmax(340px,.92fr) minmax(500px,1.08fr); }.auth-brand { position:relative;overflow:hidden;padding:44px clamp(30px,5vw,76px);display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:linear-gradient(145deg,#111d48 0%,#1e3a8a 48%,#2563eb 100%); }.auth-brand::before,.auth-brand::after { content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.055); }.auth-brand::before { width:420px;height:420px;right:-180px;top:-130px; }.auth-brand::after { width:340px;height:340px;left:-190px;bottom:-100px; }.auth-brand__logo { position:relative;z-index:2;height:60px;width:auto;align-self:flex-start; }.auth-brand__content { position:relative;z-index:2;max-width:540px; }.auth-brand__kicker { margin:0;color:#bfdbfe;font-size:11px;font-weight:900;letter-spacing:.13em;text-transform:uppercase; }.auth-brand h2 { margin:13px 0 0;font-size:clamp(34px,4vw,54px);font-weight:850;letter-spacing:-.045em;line-height:1.05; }.auth-brand__description { margin:18px 0 0;max-width:470px;color:#dbeafe;font-size:14px;line-height:1.75; }.auth-benefits { position:relative;z-index:2;display:grid;gap:11px; }.auth-benefit { display:flex;align-items:center;gap:10px;color:#dbeafe;font-size:11px;font-weight:650; }.auth-benefit i { width:27px;height:27px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:rgba(255,255,255,.08);color:#fff; }.auth-main { position:relative;padding:34px;display:grid;place-items:center;background:var(--nt-page); }.auth-theme { position:absolute;right:24px;top:22px;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--nt-border);border-radius:12px;background:var(--nt-surface);color:var(--nt-text-soft);cursor:pointer;box-shadow:var(--nt-shadow); }.auth-card { width:min(100%,470px);padding:32px;border:1px solid var(--nt-border);border-radius:22px;background:var(--nt-surface);box-shadow:0 24px 65px rgba(15,23,42,.1); }.auth-card__icon { width:48px;height:48px;margin-bottom:19px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,#eef2ff,#dbeafe);color:#4361ee;font-size:18px;box-shadow:inset 0 0 0 1px rgba(99,102,241,.1); }.auth-card h1 { margin:0;color:var(--nt-text);font-size:27px;font-weight:850;letter-spacing:-.035em; }.auth-card .subtitle { margin:8px 0 22px;color:var(--nt-muted);font-size:12px;line-height:1.65; }.auth-card label:not(.check) { display:block;margin:14px 0 7px;color:var(--nt-text-soft);font-size:10px;font-weight:850; }.auth-card input:not([type="checkbox"]) { width:100%;height:45px;padding:0 13px;border:1px solid var(--nt-border-strong);border-radius:11px;background:var(--nt-surface-soft);color:var(--nt-text);outline:none;transition:.18s; }.auth-card input:focus { border-color:var(--nt-primary);background:var(--nt-surface);box-shadow:0 0 0 3px rgba(67,97,238,.12); }.auth-card .check { margin-top:14px;display:flex;align-items:center;gap:8px;color:var(--nt-muted);font-size:11px;cursor:pointer; }.auth-card .check input { width:16px;height:16px;accent-color:var(--nt-primary); }.auth-submit { width:100%;height:46px;margin-top:20px;border:0;border-radius:11px;background:linear-gradient(135deg,var(--nt-secondary),var(--nt-blue));color:#fff;font-weight:850;cursor:pointer;box-shadow:0 9px 20px rgba(67,97,238,.24);transition:.18s; }.auth-submit:hover { transform:translateY(-1px);filter:brightness(1.06); }.auth-card .links { margin-top:17px;text-align:center; }.auth-card .links a { color:var(--nt-primary);font-size:11px;font-weight:800;text-decoration:none; }.auth-card .links a:hover { text-decoration:underline; }.auth-info { margin:0 0 17px;padding:12px 13px;border:1px solid #bfdbfe;border-radius:11px;background:#eff6ff;color:#1e40af;font-size:11px;line-height:1.55; }.auth-alert { margin-bottom:16px;padding:11px 13px;border:1px solid;border-radius:10px;font-size:11px;line-height:1.55; }.auth-alert--success { border-color:#a7f3d0;background:#ecfdf5;color:#047857; }.auth-alert--error { border-color:#fecaca;background:#fef2f2;color:#b91c1c; }.auth-alert ul { margin:0;padding-left:17px; }.auth-footer { margin-top:18px;color:var(--nt-muted);font-size:9px;text-align:center; }
html.dark .auth-card__icon { background:rgba(67,97,238,.15);color:#a5b4fc; } html.dark .auth-info { border-color:rgba(59,130,246,.3);background:rgba(59,130,246,.1);color:#93c5fd; } html.dark .auth-alert--success { border-color:rgba(16,185,129,.3);background:rgba(16,185,129,.1);color:#6ee7b7; } html.dark .auth-alert--error { border-color:rgba(239,68,68,.3);background:rgba(239,68,68,.1);color:#fca5a5; }

.mobile-quote-list { display:none; }
@media (max-width:1100px) { .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.quote-summary { grid-template-columns:1fr; }.auth-shell { grid-template-columns:minmax(310px,.8fr) minmax(460px,1.2fr); }.portal-brand__novatec,.header-support { display:none; } }
@media (max-width:780px) { .portal-header__inner { min-height:70px; }.portal-brand__ntec { height:42px; }.portal-brand__text { display:none; }.supplier-chip__content { display:none; }.supplier-chip { width:48px;padding:4px; }.portal-main { padding-top:24px; }.page-heading { flex-direction:column; }.page-heading__actions { width:100%; }.page-heading-shell { grid-template-columns:1fr;gap:8px; }.page-heading-shell .page-heading__back { width:40px;height:40px; }.page-heading-shell .breadcrumb { min-height:auto; }.kpi-grid { gap:10px; }.kpi-card { min-height:140px; }.toolbar { align-items:stretch;flex-direction:column; }.toolbar__search { max-width:none; }.toolbar__filters { overflow-x:auto;padding-bottom:2px; }.quote-table-wrap { display:none; }.mobile-quote-list { display:grid;gap:10px;padding:12px; }.mobile-quote { padding:15px;border:1px solid var(--nt-border);border-radius:13px;background:var(--nt-surface-soft); }.mobile-quote__top { display:flex;align-items:flex-start;justify-content:space-between;gap:10px; }.mobile-quote__meta { margin-top:12px;padding-top:11px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border-top:1px solid var(--nt-border); }.mobile-quote__action { margin-top:12px;width:100%; }.form-grid,.form-grid--3,.attachment-list { grid-template-columns:1fr; }.proposal-item__header { grid-template-columns:auto minmax(0,1fr); }.proposal-item__qty { grid-column:2;text-align:left; }.sticky-actions { position:static;align-items:stretch;flex-direction:column; }.sticky-actions__buttons { flex-direction:column; }.sticky-actions__buttons .btn-primary,.sticky-actions__buttons .btn-secondary { width:100%; }.portal-footer__inner { align-items:flex-start;flex-direction:column; }.auth-shell { display:block; }.auth-brand { min-height:230px;padding:28px 24px; }.auth-brand__logo { height:45px; }.auth-brand h2 { font-size:31px; }.auth-brand__description { margin-top:12px;font-size:12px; }.auth-benefits { display:none; }.auth-main { min-height:calc(100vh - 230px);padding:46px 16px 28px; }.auth-card { padding:25px 21px; }.auth-theme { right:16px;top:13px; } }
@media (max-width:520px) { .kpi-grid { grid-template-columns:1fr 1fr; }.kpi-card__body { padding:14px; }.kpi-card__value { font-size:26px; }.kpi-card__hint { display:none; }.page-heading h1 { font-size:27px; }.header-button { width:40px;padding:0; }.header-button__copy { display:none; }.portal-header__actions { gap:6px; }.supplier-chip { display:none; }.portal-brand__ntec { height:38px; }.quote-summary__meta { grid-template-columns:1fr; }.assignment-card { align-items:flex-start;flex-wrap:wrap; }.assignment-card__action { width:100%;margin-left:61px; }.assignment-card__action .btn-primary { width:100%; }.proposal-item__body,.proposal-item__header { padding-right:14px; }.portal-footer__links { flex-wrap:wrap; } }
@media (max-width:1000px) { .sent-attachment-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px) { .sent-attachment-grid { grid-template-columns:1fr; }.sent-proposal-total { width:100%;text-align:left; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important; } }
