:root{--bg: #f5f3ee;--surface: #ffffff;--surface-2: #faf8f3;--ink: #14171c;--ink-2: #2c3138;--ink-mute: #6c7079;--ink-faint: #9a9da4;--border: #e3dfd6;--border-soft: #ece8df;--border-strong:#cdc8bb;--accent: #4F6FE0;--accent-ink: #3a55bf;--accent-soft: #eaeefc;--done: #2c7a5b;--done-soft: #e6efe9;--warn: #b06a18;--font-sans: "Söhne", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, sans-serif;--font-serif: "Newsreader", "Source Serif 4", Georgia, serif;--font-mono: ui-monospace, "SF Mono", Menlo, monospace;--r-sm: 4px;--r-md: 6px;--r-lg: 10px}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:var(--font-sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-feature-settings:"ss01","cv11","ss03";letter-spacing:-.005em}#root{min-height:100%}.serif-italic{font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:-.01em}.portal{width:100%;min-height:100vh;background:var(--bg);display:flex;flex-direction:column}.hdr{display:flex;align-items:center;justify-content:space-between;padding:22px 56px;border-bottom:1px solid var(--border);background:var(--bg)}.hdr-left,.hdr-right{display:flex;align-items:center;gap:16px}.hdr-user-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:12.5px;color:var(--ink-2)}.hdr-user-dot{width:6px;height:6px;border-radius:50%;background:var(--done);box-shadow:0 0 0 3px var(--done-soft);flex-shrink:0}.hdr-menu{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);border-radius:var(--r-md);color:var(--ink-2);cursor:pointer}.hdr-menu-btn{width:36px;height:36px;display:none;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);border-radius:var(--r-md);color:var(--ink-2);cursor:pointer}.portal-rail-row{padding:28px 56px 8px;border-bottom:1px solid var(--border-soft)}.progress-rail{display:flex;align-items:center;max-width:1100px}.pr-step{display:flex;align-items:center;gap:10px;white-space:nowrap}.pr-dot{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-mute);font-size:11px;font-variant-numeric:tabular-nums;letter-spacing:0;flex-shrink:0}.pr-step.done .pr-dot{background:var(--ink);border-color:var(--ink);color:var(--surface)}.pr-step.current .pr-dot{background:var(--surface);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 4px var(--accent-soft)}.pr-step.current .pr-num{color:var(--accent-ink);font-weight:500}.pr-step.future .pr-dot{color:var(--ink-faint)}.pr-label{font-size:12.5px;color:var(--ink-2);letter-spacing:.005em}.pr-step.future .pr-label{color:var(--ink-faint)}.pr-step.current .pr-label{color:var(--ink);font-weight:500}.pr-line{flex:1;height:1px;background:var(--border-strong);margin:0 16px;min-width:24px}.pr-line.done{background:var(--ink)}.portal-main{padding:32px 56px 64px;display:flex;flex-direction:column;gap:28px;max-width:1180px;width:100%}.status-card{background:var(--ink);color:#f4f1ea;border-radius:var(--r-lg);padding:36px 40px;display:grid;grid-template-columns:1.85fr 1fr;gap:40px;align-items:end;position:relative;overflow:hidden}.status-card:before{content:"";position:absolute;inset:0;background:radial-gradient(800px 220px at 100% 0%,rgba(79,111,224,.18),transparent 60%);pointer-events:none}.sc-left{position:relative;z-index:1}.sc-right{position:relative;z-index:1;display:flex;flex-direction:column;gap:12px;align-items:flex-start}.sc-kicker{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;color:#c9c4b8;letter-spacing:.08em;text-transform:uppercase;margin-bottom:18px}.sc-kicker-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px #4f6fe02e;flex-shrink:0}.sc-headline{font-family:var(--font-sans);font-weight:500;font-size:30px;line-height:1.12;letter-spacing:-.028em;margin:0 0 14px;color:#f7f4ec;text-wrap:pretty;white-space:nowrap}.sc-body{margin:0 0 22px;font-size:14.5px;line-height:1.6;color:#c5c1b6;max-width:52ch}.sc-meta{border-top:1px solid rgba(255,255,255,.1);padding-top:14px}.sc-meta-row{display:flex;justify-content:space-between;gap:16px}.sc-meta-label{font-size:11.5px;color:#a09c92;letter-spacing:.04em;text-transform:uppercase}.sc-meta-value{font-size:13px;color:#e7e3d8;font-variant-numeric:tabular-nums}.sc-cta-sub{font-size:12.5px;color:#a09c92;line-height:1.5;max-width:280px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:var(--r-md);border:1px solid transparent;font-family:var(--font-sans);font-size:13.5px;font-weight:500;letter-spacing:-.005em;cursor:pointer;transition:background .12s,border-color .12s,color .12s;text-decoration:none;line-height:1}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.btn:disabled{cursor:not-allowed;opacity:.45}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-ink);border-color:var(--accent-ink)}.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--border-strong)}.btn-ghost:hover{background:var(--surface-2)}.btn-ghost-sm{background:transparent;color:var(--ink-2);border:1px solid var(--border-strong);padding:6px 10px;font-size:12.5px;border-radius:var(--r-sm);display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-family:var(--font-sans);font-weight:500;transition:background .12s}.btn-ghost-sm:hover{background:var(--surface)}.btn-lg{padding:12px 18px;font-size:14px;width:100%}.btn-xl{padding:13px 22px;font-size:14.5px}.btn-sm{padding:7px 12px;font-size:12.5px}.btn-link{background:none;border:none;color:var(--ink-mute);font-size:12.5px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:4px;font-family:inherit;text-align:center}.btn-link:hover{color:var(--ink)}.sec-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}.sec{display:grid;grid-template-columns:64px 1fr;border-bottom:1px solid var(--border-soft);background:var(--surface);position:relative}.sec:last-child{border-bottom:none}.sec.is-locked{background:var(--surface-2)}.sec.is-locked .sec-title{color:var(--ink-mute)}.sec.is-locked .sec-num,.sec.is-locked .sec-kicker{color:var(--ink-faint)}.sec.is-current:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent)}.sec-rail{border-right:1px solid var(--border-soft);display:flex;align-items:flex-start;justify-content:center;padding-top:28px}.sec-num{font-family:var(--font-serif);font-size:18px;font-style:italic;color:var(--ink-2);letter-spacing:0;font-feature-settings:"lnum"}.sec-body{padding:26px 32px 28px}.sec-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:16px}.sec-kicker{font-size:11px;color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}.sec-title{font-family:var(--font-sans);font-size:18px;font-weight:500;letter-spacing:-.015em;margin:0;color:var(--ink)}.sec-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-mute);white-space:nowrap;flex-shrink:0}.sec-status.status-done{background:var(--done-soft);color:var(--done);border-color:#cfe1d5}.sec-status.status-current{background:var(--accent-soft);color:var(--accent-ink);border-color:#d4dcf6}.sec-status.status-locked{color:var(--ink-faint);background:transparent}.sec-content{display:flex;flex-direction:column;gap:18px}.sec-locked-note{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-faint);margin-top:6px}.sec-meta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:14px 0 4px;border-top:1px solid var(--border-soft)}.meta-cell-label{font-size:11px;color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}.meta-cell-value{font-size:13.5px;color:var(--ink);font-variant-numeric:tabular-nums}.meta-cell-value.is-muted{color:var(--ink-faint)}.sec-cta-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.sec-cta-aside{font-size:12.5px;color:var(--ink-mute)}.doc-card{border:1px solid var(--border);border-radius:var(--r-md);padding:18px 20px;background:var(--surface-2);display:flex;align-items:center;justify-content:space-between;gap:16px}.doc-card-left{display:flex;align-items:center;gap:16px}.doc-thumb{width:44px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--accent-ink);flex-shrink:0}.doc-title{font-size:14px;font-weight:500;color:var(--ink)}.doc-sub{font-size:12.5px;color:var(--ink-mute);margin-top:2px}.cal-card{border:1px solid var(--border);border-radius:var(--r-md);padding:18px 20px;background:var(--surface-2);display:flex;align-items:center;justify-content:space-between;gap:16px}.cal-card-left{display:flex;align-items:center;gap:14px;color:var(--accent-ink)}.cal-title{font-size:14px;font-weight:500;color:var(--ink)}.cal-confirmed{display:inline-flex;align-items:center;gap:8px;color:var(--done);font-size:13px;font-variant-numeric:tabular-nums}.bid-steps{display:flex;flex-direction:column;border-top:1px solid var(--border-soft)}.bid-step{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--border-soft)}.bid-step:last-child{border-bottom:none;padding-bottom:4px}.bid-step-num{font-family:var(--font-serif);font-style:italic;font-size:18px;color:var(--ink-faint)}.bid-step-title{font-size:14px;font-weight:500;color:var(--ink)}.bid-step-sub{font-size:12.5px;color:var(--ink-mute);margin-top:2px}.bid-deadline{display:flex;align-items:center;justify-content:space-between;background:#fbf5ea;border:1px solid #ecdfc3;padding:12px 16px;border-radius:var(--r-sm);font-size:13px;color:#7a5818;gap:12px}.bid-deadline-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#9a7330}.bid-deadline-value strong{color:var(--ink);font-weight:500}.link-quiet{color:var(--ink);text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:3px}.link-quiet:hover{text-decoration-color:var(--accent)}.deal-contact{display:flex;justify-content:space-between;align-items:flex-end;padding-top:26px;border-top:1px solid var(--border);gap:24px}.dc-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px}.dc-name{font-family:var(--font-serif);font-size:19px;font-style:italic;color:var(--ink)}.dc-role{font-size:12.5px;color:var(--ink-mute);margin-top:2px}.dc-right{text-align:right}.dc-link{font-family:var(--font-mono);font-size:13.5px;color:var(--ink);text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:4px}.dc-link:hover{text-decoration-color:var(--accent)}.login-shell{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(800px 360px at 20% 0%,rgba(79,111,224,.05),transparent 60%),var(--bg);position:relative}.login-shell:before{content:"";position:absolute;inset:0;background-image:linear-gradient(to right,rgba(20,23,28,.025) 1px,transparent 1px);background-size:96px 100%;pointer-events:none}.login-mark{position:absolute;top:28px;left:56px;z-index:2}.login-frame{width:100%;max-width:460px;padding:64px 48px;display:flex;flex-direction:column;gap:32px;position:relative;z-index:1}.login-meta{display:flex;flex-direction:column;gap:12px}.login-title{font-family:var(--font-sans);font-weight:500;font-size:30px;letter-spacing:-.025em;line-height:1.1;margin:0;color:var(--ink);text-wrap:pretty}.login-sub{margin:0;font-size:14px;line-height:1.55;color:var(--ink-mute);max-width:38ch}.login-actions{display:flex;flex-direction:column;gap:14px}.or-rule{display:flex;align-items:center;gap:12px;color:var(--ink-faint);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase}.or-rule:before,.or-rule:after{content:"";flex:1;height:1px;background:var(--border)}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-mute)}.field-input{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--r-md);padding:11px 14px;font-family:var(--font-sans);font-size:14px;color:var(--ink);outline:none;transition:border-color .12s,box-shadow .12s;width:100%}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.code-note{font-size:13px;color:var(--ink-mute);line-height:1.5}.login-error{color:#c0392b}.code-row{display:flex;gap:8px}.code-cell{flex:1;height:52px;text-align:center;font-size:20px;font-variant-numeric:tabular-nums;border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--r-md);outline:none;font-family:var(--font-mono);transition:border-color .12s,box-shadow .12s}.code-cell:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}@media(max-width:767px){.hdr{padding:16px 20px}.hdr-right{display:none}.hdr-menu-btn{display:inline-flex}.portal-rail-row{padding:18px 20px 6px}.progress-rail{overflow-x:auto;scrollbar-width:none;padding-bottom:8px}.progress-rail::-webkit-scrollbar{display:none}.progress-rail .pr-line{margin:0 8px;min-width:12px}.progress-rail .pr-label{font-size:11.5px}.portal-main{padding:22px 20px 40px;gap:20px}.status-card{grid-template-columns:1fr;padding:24px;gap:24px;align-items:start}.sc-headline{font-size:26px!important;white-space:normal!important}.sc-right{align-items:stretch}.sec{grid-template-columns:1fr}.sec-rail{display:none}.sec-body{padding:20px}.sec-head{flex-direction:column;gap:8px}.sec-meta-grid{grid-template-columns:1fr;gap:14px}.doc-card{flex-direction:column;align-items:stretch;gap:16px}.cal-card{flex-direction:column;align-items:stretch}.bid-deadline{flex-direction:column;align-items:flex-start;gap:4px}.deal-contact{flex-direction:column;align-items:flex-start;gap:14px}.dc-right{text-align:left}.login-mark{top:20px;left:20px}.login-frame{padding:80px 24px 40px}}@media(min-width:768px)and (max-width:1023px){.hdr{padding:20px 32px}.portal-rail-row{padding:22px 32px 8px}.portal-main{padding:28px 32px 56px}}
