:root{
  --bg:#f5f5f7;
  --surface:#ffffff;
  --surface-subtle:#fbfbfc;
  --surface-muted:#f1f1f3;
  --text:#111111;
  --text-soft:#3a3a3c;
  --muted:#6e6e73;
  --muted-2:#8e8e93;
  --line:#e5e5e7;
  --line-soft:#f0f0f2;
  --accent:#111111;
  --accent-blue:#0a66c2;
  --success:#1f7a3f;
  --warning:#9a6700;
  --danger:#b42318;
  --radius-xs:10px;
  --radius-sm:14px;
  --radius-md:18px;
  --radius-lg:24px;
  --shadow-sm:0 1px 2px rgba(0,0,0,.04),0 8px 20px rgba(0,0,0,.035);
  --shadow-md:0 1px 3px rgba(0,0,0,.05),0 18px 46px rgba(0,0,0,.045);
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-8:32px;
  --space-10:40px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.45;letter-spacing:-.011em;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}a:hover{color:var(--text)}
button,input,select,textarea{font-family:inherit}
.app{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;padding:26px 18px;background:rgba(251,251,252,.92);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:28px;backdrop-filter:saturate(180%) blur(18px)}
.brand{display:block;padding:0 8px}.brand img{display:block;width:168px;max-width:100%;height:auto}.nav{display:grid;gap:3px}.nav a{position:relative;display:flex;align-items:center;min-height:38px;padding:9px 12px;border-radius:12px;color:var(--muted);font-size:14px;font-weight:560;letter-spacing:-.006em;transition:background .15s ease,color .15s ease}.nav a:hover{background:#fff;color:var(--text)}.nav a.active{background:#fff;color:var(--text);box-shadow:var(--shadow-sm)}.nav a.active:before{content:"";position:absolute;left:0;top:11px;bottom:11px;width:3px;border-radius:999px;background:var(--text)}
.profile{margin-top:auto;padding-top:18px;border-top:1px solid var(--line);display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#1d1d1f;color:#fff;font-size:14px;font-weight:650}.profile strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.profile small,small,.muted{display:block;color:var(--muted);font-size:13px;line-height:1.45}.logout{color:var(--muted);font-size:13px}.logout:hover{color:var(--danger)}
.main{min-width:0;padding:34px clamp(22px,4vw,52px) 54px}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.login-card{width:min(440px,100%);padding:38px;background:var(--surface);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow-md)}.login-card img{width:200px}.login-card h1{margin:28px 0 8px;font-size:34px;line-height:1.05;letter-spacing:-.045em}.login-card p{margin:0 0 24px;color:var(--muted)}.login-card form{display:grid;gap:14px}
.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:0 0 28px}.topbar h1{margin:0 0 7px;font-size:clamp(32px,4vw,46px);line-height:1.02;font-weight:720;letter-spacing:-.055em}.topbar p{margin:0;color:var(--muted);font-size:16px}.stat-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.stat{min-width:142px;padding:15px 18px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-sm)}.stat strong{display:block;font-size:28px;line-height:1;font-weight:720;letter-spacing:-.04em}.stat span{display:block;margin-top:6px;color:var(--muted);font-size:12px;font-weight:560}
.grid{display:grid;gap:18px;margin-bottom:18px}.two-col{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.three-col{grid-template-columns:1.15fr .85fr .85fr}.card{background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-sm);padding:24px;overflow:auto}.card h2{margin:0 0 18px;font-size:20px;line-height:1.18;font-weight:690;letter-spacing:-.035em}.card h3{margin:22px 0 12px;font-size:15px;color:var(--text-soft);font-weight:660}.card p{color:var(--text-soft)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.card-head h2{margin:0}.list-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line-soft)}.list-item:last-child{border-bottom:0}.list-item strong,td strong{font-weight:650;color:var(--text)}
.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0;text-align:left}.metrics>div{padding:14px;border:1px solid var(--line-soft);border-radius:16px;background:var(--surface-subtle)}.metrics strong{display:block;font-size:30px;line-height:1;font-weight:720;letter-spacing:-.045em}.metrics span{display:block;margin-top:6px;font-size:12px;color:var(--muted)}.portal-link{display:flex;align-items:center;justify-content:space-between;margin:8px 0;padding:14px 15px;border:1px solid var(--line);border-radius:16px;background:var(--surface-subtle);font-weight:600;color:var(--text-soft)}.portal-link:after{content:"›";font-size:21px;font-weight:360;color:var(--muted-2)}.portal-link:hover{background:#fff;color:var(--text)}
.primary,.soft-button,.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;border:1px solid var(--line);font-size:14px;font-weight:630;line-height:1;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease}.primary{padding:12px 16px;background:#111;color:#fff;border-color:#111;box-shadow:none}.primary:hover{background:#2a2a2c;color:#fff;transform:translateY(-1px)}.soft-button{width:100%;margin-top:12px;padding:12px 15px;background:var(--surface-muted);color:var(--text);border-color:transparent}.soft-button:hover{background:#e9e9ec}.icon-btn{margin:2px;padding:8px 12px;background:#fff;color:var(--text-soft);font-size:13px}.icon-btn:hover{background:var(--surface-muted);color:var(--text)}.danger{color:var(--danger)!important}.flash{margin:0 0 18px;padding:13px 16px;border:1px solid #cfe8d8;border-radius:16px;background:#f7fff9;color:#176332;font-weight:600}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .wide,.wide{grid-column:1/-1}label{display:block;color:var(--text-soft);font-size:13px;font-weight:610}input,select,textarea{width:100%;margin-top:7px;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--text);font:inherit;outline:none;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}input::placeholder,textarea::placeholder{color:#a1a1a6}input:focus,select:focus,textarea:focus{border-color:#a7a7ad;box-shadow:0 0 0 4px rgba(0,0,0,.045)}textarea{min-height:108px;resize:vertical}
table{width:100%;border-collapse:separate;border-spacing:0}th,td{padding:14px 12px;border-bottom:1px solid var(--line-soft);vertical-align:middle}th{text-align:left;color:var(--muted);font-size:11px;font-weight:680;letter-spacing:.04em;text-transform:uppercase;background:transparent}td{color:var(--text-soft)}tbody tr:hover td{background:var(--surface-subtle)}tbody tr:last-child td{border-bottom:0}.actions{white-space:nowrap}.pill{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:4px 9px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--text-soft);font-size:12px;font-weight:620}.pill:before{display:none}.pill.done{color:var(--success);background:#f7fbf8;border-color:#dbeee1}.pill.wait,.pill.review{color:var(--warning);background:#fffaf0;border-color:#f2e1b8}.pill.urgent{color:var(--danger);background:#fff8f7;border-color:#f3d1cc}
.progress{height:7px;background:#ececef;border-radius:999px;overflow:hidden;margin:18px 0}.progress span{display:block;height:100%;border-radius:inherit;background:#1d1d1f}.progress.mini{height:6px;margin:0 0 6px;min-width:110px;max-width:170px}.meta{display:grid;grid-template-columns:145px minmax(0,1fr);gap:10px 16px}.meta dt{color:var(--muted);font-size:13px}.meta dd{margin:0;color:var(--text);font-weight:650}.phase{position:relative;margin:12px 0;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--surface-subtle)}.phase .pill{float:right;margin-left:12px}.phase p{margin:12px 0 0;color:var(--text-soft);line-height:1.58}.phase small{clear:both;margin-top:8px}.toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 180px 160px auto auto;gap:10px;align-items:end;margin:0 0 18px}.toolbar input,.toolbar select{margin-top:0}
.card table:only-child,.card .toolbar+table{margin-top:4px}.card:has(tbody:empty)::after{content:"Noch keine Einträge vorhanden.";display:block;padding:22px 0;color:var(--muted);font-size:14px}.card:has(tbody:empty) table{display:none}
@media(max-width:1180px){.three-col,.two-col{grid-template-columns:1fr}.topbar{display:block}.stat-row{justify-content:flex-start;margin-top:18px}.toolbar{grid-template-columns:1fr 1fr}.toolbar .primary,.toolbar .icon-btn{width:100%}}
@media(max-width:820px){.app{display:block}.sidebar{position:relative;height:auto;padding:18px;border-right:0;border-bottom:1px solid var(--line);gap:18px}.brand img{width:150px}.nav{display:flex;gap:6px;overflow:auto;padding-bottom:4px}.nav a{white-space:nowrap}.nav a.active:before{display:none}.profile{display:none}.main{padding:22px 16px 42px}.topbar h1{font-size:34px}.stat-row{display:grid;grid-template-columns:1fr 1fr}.stat{min-width:0}.card{padding:18px;border-radius:20px}.form-grid,.toolbar{grid-template-columns:1fr}.metrics{grid-template-columns:1fr}table{display:block;overflow-x:auto;white-space:nowrap}.meta{grid-template-columns:1fr;gap:4px}}
@media(max-width:520px){body{font-size:14px}.stat-row{grid-template-columns:1fr}.topbar h1{font-size:30px}.card-head{align-items:flex-start;flex-direction:column}.primary,.soft-button,.icon-btn{width:100%}.actions{white-space:normal}.login-card{padding:26px;border-radius:22px}.login-card h1{font-size:30px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

.phase-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.phase-head strong{font-weight:680}.file-list{display:grid;gap:8px;margin:10px 0 14px}.file-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:14px;background:#fff}.file-row strong{display:block;font-size:14px}.file-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.visibility{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:999px;border:1px solid var(--line);font-size:12px;font-weight:620;color:var(--muted);background:var(--surface-subtle)}.visibility.visible{color:var(--success);border-color:#dbeee1;background:#f7fbf8}.visibility.hidden{color:var(--muted);background:#f7f7f8}.file-empty{margin:8px 0 12px}.file-upload{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto auto;gap:10px;align-items:end;margin:12px 0 14px;padding:12px;border:1px solid var(--line-soft);border-radius:16px;background:#fff}.file-upload input{margin-top:7px}.checkbox{display:flex;align-items:center;gap:8px;margin:0;color:var(--text-soft)}.checkbox input{width:auto;margin:0}.file-upload .primary{white-space:nowrap}
@media(max-width:980px){.file-upload{grid-template-columns:1fr}.file-row{align-items:flex-start;flex-direction:column}.file-actions{justify-content:flex-start}}
.inline-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.phase-list-item{transition:background .15s ease,border-color .15s ease}.phase-list-item:hover{background:#fff;border-color:#d8d8dc}.task-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line-soft)}.task-row:last-of-type{border-bottom:0}.task-row strong{display:block;font-weight:650}.compact-form{margin-top:18px;padding-top:18px;border-top:1px solid var(--line-soft)}
@media(max-width:760px){.task-row{align-items:flex-start;flex-direction:column}.inline-actions{display:grid}.inline-actions .icon-btn{width:100%}}

/* v6: kompakte Plus-/Modal-Erstellung statt offener Erstellungsmasken */
.top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.soft-button.compact{width:auto;margin-top:0}.round-plus{width:38px;height:38px;min-width:38px;border-radius:999px;border:1px solid var(--line);background:#111;color:#fff;display:inline-grid;place-items:center;font-size:24px;font-weight:420;line-height:1;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:transform .14s ease,background .14s ease,border-color .14s ease}.round-plus:hover{background:#2a2a2c;transform:translateY(-1px)}.round-plus.small{width:32px;height:32px;min-width:32px;font-size:20px;background:#fff;color:#111}.round-plus.small:hover{background:var(--surface-muted)}.modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:22px}.modal.is-open{display:flex}.modal-backdrop{position:absolute;inset:0;background:rgba(18,18,20,.28);backdrop-filter:blur(10px)}.modal-panel{position:relative;z-index:1;width:min(760px,100%);max-height:min(86vh,900px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:0 24px 70px rgba(0,0,0,.16);padding:24px}.modal-panel.large{width:min(960px,100%)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.modal-head h2{margin:0;font-size:21px;letter-spacing:-.035em}.modal-close{width:34px;height:34px;border-radius:999px;border:1px solid var(--line);background:#f5f5f7;color:#111;display:grid;place-items:center;font-size:22px;line-height:1;cursor:pointer}.modal-close:hover{background:#e9e9ec}.modal .card{box-shadow:none;border:0;padding:0;overflow:visible}.modal .card>h2:first-child{display:none}.modal .file-upload,.modal .compact-form{margin:0;padding:0;border:0;background:transparent}.modal .primary{margin-top:2px}.js-modal-source{display:none!important}.card-head .round-plus{margin-left:auto}@media(max-width:820px){.modal{align-items:flex-end;padding:0}.modal-panel{width:100%;max-height:90vh;border-radius:24px 24px 0 0;padding:20px}.top-actions{width:100%;justify-content:flex-start}.round-plus{width:36px;height:36px;min-width:36px}.modal .form-grid{grid-template-columns:1fr}}


/* v7: labelled create/edit actions and company detail overview */
.add-action{display:inline-flex;align-items:center;gap:9px;min-height:36px;padding:0 13px 0 8px;border-radius:999px;border:1px solid var(--line);background:#111;color:#fff;font-size:13px;font-weight:650;letter-spacing:-.01em;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:transform .14s ease,background .14s ease,border-color .14s ease}
.add-action:hover{background:#2a2a2c;transform:translateY(-1px)}
.add-action.small{background:#fff;color:#111;padding-right:12px}
.add-action.small:hover{background:var(--surface-muted)}
.add-action-icon{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:999px;background:rgba(255,255,255,.16);font-size:19px;font-weight:430;line-height:1}
.add-action.small .add-action-icon{background:#f2f2f4;color:#111}
.company-summary{display:grid;grid-template-columns:1.15fr .85fr;gap:22px;margin-bottom:22px}
.company-identity h2{margin:0 0 8px;font-size:30px;letter-spacing:-.045em}
.company-identity p{margin:0;color:var(--muted);line-height:1.6}
.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 22px;margin-top:18px}
.info-item{padding-top:12px;border-top:1px solid var(--line)}
.info-item span{display:block;color:var(--muted);font-size:12px;font-weight:650;margin-bottom:5px}
.info-item strong,.info-item a{font-size:14px;color:var(--text);font-weight:650;text-decoration:none;word-break:break-word}
.info-item a:hover{text-decoration:underline}
.company-notes-preview{padding:18px;border-radius:18px;background:var(--surface-muted);border:1px solid var(--line);color:var(--muted);line-height:1.6}
.company-notes-preview strong{display:block;color:var(--text);margin-bottom:7px}
.card-head .add-action{margin-left:auto}
@media(max-width:900px){.company-summary{grid-template-columns:1fr}.info-grid{grid-template-columns:1fr}.add-action{width:auto}.card-head .add-action{margin-left:0}}


/* v9 calendar */
.calendar-nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.calendar-card{padding:0;overflow:hidden}
.calendar-legend{display:flex;gap:18px;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line);color:var(--muted);font-size:13px}
.legend-dot{display:inline-block;width:8px;height:8px;border-radius:999px;margin-right:7px;vertical-align:middle;background:#8a8a8e}.legend-dot.deadline{background:#d92d20}.legend-dot.appointment{background:#1d1d1f}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-weekdays{border-bottom:1px solid var(--line);background:#fafafa;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.calendar-weekdays div{padding:12px 14px;border-right:1px solid var(--line-soft)}
.calendar-day{min-height:142px;padding:12px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);background:#fff}
.calendar-day.empty{background:#fafafa}
.calendar-day.today{background:#fbfbfd;box-shadow:inset 0 0 0 1px #c9c9cf}
.calendar-date{font-size:13px;font-weight:700;color:var(--text);margin-bottom:8px}
.cal-item{border-radius:12px;padding:8px 9px;margin-bottom:7px;border:1px solid var(--line);background:#fff;color:var(--text)}
.cal-item strong{display:block;font-size:12px;font-weight:700;line-height:1.25}
.cal-item small{display:block;color:var(--muted);font-size:11px;line-height:1.35;margin-top:3px}
.cal-item a{display:inline-block;margin-top:7px;font-size:11px;color:var(--text);text-decoration:underline;text-underline-offset:3px}
.cal-item.deadline{border-color:#f3c9c4;background:#fff6f5;color:#9f1c12}
.cal-item.deadline strong{color:#9f1c12}
.cal-item.appointment{background:#f7f7f8}
@media(max-width:900px){.calendar-grid{grid-template-columns:1fr}.calendar-weekdays{display:none}.calendar-day.empty{display:none}.calendar-day{min-height:auto;border-right:0}.calendar-nav{justify-content:flex-start}.calendar-legend{align-items:flex-start;flex-direction:column;gap:8px}}

/* v10 calendar refinements */
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;flex-wrap:wrap}.segmented{display:inline-flex;padding:4px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.03)}.segmented a{padding:8px 13px;border-radius:10px;color:var(--muted);font-size:14px;font-weight:650}.segmented a.active{background:#111;color:#fff}.calendar-date a{color:inherit}.cal-item{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.cal-item.compact{display:block;overflow:hidden}.cal-item.compact strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-item.compact .cal-actions{display:none}.cal-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cal-actions a{margin-top:0}.cal-more{display:block;margin-top:8px;font-size:12px;color:var(--muted);text-decoration:none}.cal-more:not(.muted){color:#111;font-weight:650}.week-card{display:grid;grid-template-columns:1fr;gap:0;padding:0;overflow:hidden}.week-day{padding:18px 20px;border-bottom:1px solid var(--line-soft)}.week-day:last-child{border-bottom:0}.week-day header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.week-day header a{font-size:13px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.day-card .cal-item,.week-card .cal-item{padding:13px 14px;margin-bottom:10px;border-radius:15px}.day-card .cal-item strong,.week-card .cal-item strong{font-size:14px}.day-card .cal-item small,.week-card .cal-item small{font-size:12px}.modal.is-open{display:flex}@media(max-width:900px){.calendar-toolbar{align-items:stretch}.segmented{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.segmented a{text-align:center}.cal-item{display:block}.cal-actions{margin-top:10px}.calendar-day .cal-more.muted{display:none}}

.copy-field{width:100%;margin-top:8px;border:1px solid var(--line);background:#fafafa;border-radius:10px;padding:8px 10px;font-size:12px;color:var(--muted)}
.invite-row{align-items:flex-start;gap:16px}
.invite-row>div:first-child{min-width:0;flex:1}

/* launch-ready v16: destructive actions as POST forms */
.inline-post{display:inline-flex;margin:2px;vertical-align:middle}.inline-post .icon-btn{margin:0}.actions .inline-post,.file-actions .inline-post,.inline-actions .inline-post{display:inline-flex}
@media(max-width:520px){.inline-post{width:100%}.inline-post .icon-btn{width:100%}}

/* v29 customer portal polish */
.customer-hero{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px;align-items:stretch;background:#050505;color:#fff;border-radius:32px;padding:34px;margin-bottom:22px;box-shadow:0 24px 70px rgba(0,0,0,.18)}
.customer-hero h1{font-size:clamp(34px,5vw,58px);line-height:.98;letter-spacing:-.06em;margin:8px 0 12px;color:#fff}
.customer-hero p{max-width:720px;color:#d8d8d8;font-size:16px;line-height:1.65;margin:0}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#777;font-weight:800;margin-bottom:8px}
.customer-hero .eyebrow{color:#aaa}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.hero-actions .soft-button{background:#fff;color:#111;border-color:#fff}.customer-score{background:linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,.06));border:1px solid rgba(255,255,255,.14);border-radius:24px;padding:22px;display:flex;flex-direction:column;justify-content:flex-end}.customer-score span{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:#cfcfcf}.customer-score strong{font-size:56px;letter-spacing:-.07em;margin:8px 0}.customer-score .progress{background:rgba(255,255,255,.16)}
.portal-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.portal-stat{background:#fff;border:1px solid var(--line);border-radius:24px;padding:20px;box-shadow:var(--shadow)}.portal-stat span{display:block;color:#777;font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:800}.portal-stat strong{display:block;font-size:34px;letter-spacing:-.05em;margin-top:8px}.portal-stat small{color:#666}.customer-grid{align-items:start}.premium-focus{overflow:hidden}.progress.big{height:12px;border-radius:999px;margin:18px 0 20px}.premium-meta{grid-template-columns:150px 1fr}.customer-note{border:1px solid #e8e8e8;background:#fafafa;border-radius:18px;padding:16px 18px;margin:18px 0;color:#222;line-height:1.65}.phase-timeline{display:grid;gap:14px;margin:20px 0}.phase-step{display:grid;grid-template-columns:16px 1fr;gap:14px;padding:16px;border:1px solid #ededed;border-radius:20px;background:linear-gradient(180deg,#fff,#fafafa)}.phase-dot{width:12px;height:12px;border-radius:50%;background:#bbb;margin-top:5px}.phase-dot.done{background:#111}.phase-dot.work{background:#555}.phase-dot.wait{background:#999}.appointment-card{position:sticky;top:20px}.appointment-row{display:grid;grid-template-columns:74px 1fr;gap:14px;padding:16px 0;border-bottom:1px solid #eee}.appointment-row:last-child{border-bottom:0}.appointment-date{border:1px solid #e5e5e5;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:70px;background:#fafafa}.appointment-date strong{font-size:19px;letter-spacing:-.04em}.appointment-date span{font-size:12px;color:#666}.project-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.customer-project-card{display:grid;gap:12px;border:1px solid #e9e9e9;border-radius:22px;padding:18px;text-decoration:none;color:#111;background:linear-gradient(180deg,#fff,#fafafa);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.customer-project-card:hover{transform:translateY(-2px);border-color:#111;box-shadow:0 18px 42px rgba(0,0,0,.08)}.customer-project-card strong{font-size:18px;letter-spacing:-.03em}.customer-project-card small{color:#666}.cal-actions form.inline-post{display:inline-flex;margin:0}.cal-actions .danger{border-color:#ffe0e0;color:#a40000;background:#fff7f7}
@media (max-width:900px){.customer-hero{grid-template-columns:1fr;padding:26px}.portal-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.appointment-card{position:static}.premium-meta{grid-template-columns:1fr}.customer-score strong{font-size:42px}}
@media (max-width:560px){.portal-stats{grid-template-columns:1fr}.appointment-row{grid-template-columns:1fr}.appointment-date{align-items:flex-start;padding:12px 14px;min-height:auto}.project-card-grid{grid-template-columns:1fr}}
