.planning-shell { max-width:1200px; margin:auto; padding:36px 28px 72px; }
.planning-head { display:flex; justify-content:space-between; gap:24px; align-items:flex-end; border-bottom:2px solid var(--primary-tint); padding:0 0 24px; }
.planning-head h1 { margin:4px 0 8px; color:var(--gray-900); font-size:var(--text-3xl); letter-spacing:-.025em; }
.planning-head p { margin:0; color:var(--gray-600); max-width:660px; }
.planning-kicker, .mk3-label { font-size:12px; color:var(--primary); font-weight:var(--font-bold); letter-spacing:.08em; text-transform:uppercase; }
.mk3-label { margin-left:8px; color:var(--gray-600); letter-spacing:0; text-transform:none; }
.planning-actions { display:flex; flex-wrap:wrap; gap:10px; padding-bottom:2px; }
.plan-back { color:var(--primary); font-size:var(--text-sm); font-weight:var(--font-semibold); text-decoration-thickness:1px; text-underline-offset:4px; }
.planning-head + .plan-toolbar { margin-top:18px; }
.plan-toolbar { display:flex; align-items:center; min-height:36px; }
.plan-btn, .plan-input, .plan-select, .plan-textarea { border:1px solid var(--gray-300); border-radius:var(--radius-md); padding:9px 12px; background:var(--bg-primary); color:var(--gray-900); font:inherit; cursor:pointer; }
.plan-btn { font-size:var(--text-sm); font-weight:var(--font-semibold); transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast); }
.plan-btn:hover:not(:disabled) { border-color:var(--primary); background:var(--primary-light); }
.plan-btn.primary { background:var(--primary); color:#fff; border-color:var(--primary); }
.plan-btn.primary:hover:not(:disabled) { background:var(--primary-hover); transform:translateY(-1px); }
.plan-btn.danger { color:var(--error); }
.plan-btn.danger:hover:not(:disabled) { background:var(--error-soft); border-color:var(--error); }
.plan-btn.small { padding:6px 9px; font-size:12px; }
.plan-btn:disabled { cursor:wait; opacity:.65; }
.plan-btn:focus-visible, .plan-input:focus-visible, .plan-select:focus-visible, .plan-textarea:focus-visible, .plan-back:focus-visible { outline:3px solid var(--secondary); outline-offset:2px; }
.plan-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:24px 0; }
.metric-card, .plan-panel { background:var(--bg-primary); border:1px solid var(--gray-200); border-radius:var(--radius-lg); padding:20px; box-shadow:var(--shadow-sm); }
.metric-card { border-top:3px solid var(--secondary); }
.metric-card .number { font-size:28px; font-weight:var(--font-bold); color:var(--primary); margin-top:8px; line-height:1.2; }
.metric-note, .all-time-note { margin: 8px 0 0; color: var(--gray-600); font-size: 13px; }
.all-time-note { margin: -8px 0 22px; }
.label, .muted { color: var(--gray-600); font-size: 13px; }
.plan-table { width: 100%; border-collapse: collapse; }
.plan-table th, .plan-table td { padding: 12px; border-bottom: 1px solid var(--gray-200); text-align: left; }
.plan-state { text-align:center; padding:30px; color:var(--gray-600); background:var(--bg-primary); border:1px dashed var(--gray-300); border-radius:var(--radius-lg); margin:22px 0; }
.plan-state.error { color:var(--error); border-color:var(--error); background:var(--error-soft); }
.plan-loading { display:grid; gap:10px; padding:22px 0; }
.plan-loading span { display:block; height:16px; max-width:100%; border-radius:var(--radius-sm); background:linear-gradient(90deg,var(--gray-200),var(--bg-primary),var(--gray-200)); background-size:200% 100%; animation:plan-shimmer 1.3s linear infinite; }
.plan-loading span:nth-child(2) { width:78%; }.plan-loading span:nth-child(3) { width:58%; }
.plan-dialog { border:0; width:min(600px,calc(100% - 28px)); border-radius:var(--radius-xl); padding:0; box-shadow:var(--shadow-xl); color:var(--gray-900); }
.plan-dialog::backdrop { background:rgba(17,24,39,.58); }
.plan-dialog form { padding:28px; }
.plan-dialog h2 { margin:0 0 22px; color:var(--primary); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.form-field.full { grid-column: 1 / -1; }
.form-field label { display: block; margin-bottom: 5px; }
.form-field small { display: block; margin-top: 4px; color: var(--gray-600); font-size: 12px; }
.plan-input, .plan-textarea { width:100%; }
.plan-textarea { min-height:96px; resize:vertical; }
.dialog-actions { margin-top:22px; display:flex; justify-content:flex-end; gap:10px; }
.assignment { display: grid; grid-template-columns: 80px 1fr auto auto; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--gray-200); align-items: start; }
.assignment:last-child { border-bottom: 0; }
.item-kind { color: var(--gray-600); font-size: 13px; }
.item-metrics { display: flex; flex-wrap: wrap; gap: 12px; margin: 8px 0; }
.item-metrics div { min-width: 90px; }
.item-metrics dt { color: var(--gray-600); font-size: 12px; }
.item-metrics dd { margin: 2px 0 0; font-weight: 600; }
.switch-label { white-space: nowrap; }
.plan-text-link { display: inline-block; color: var(--primary); font-size: 13px; }
.panel-heading { display: flex; justify-content: space-between; gap: 16px; align-items: start; }
.public-project-link { margin: 16px 0 0; font-size: 13px; color: var(--gray-600); overflow-wrap: anywhere; }
.link-controls { margin-top: 18px; }
.link-controls label { display: block; margin-bottom: 5px; font-weight: 600; }
.table-scroll { overflow-x:auto; border:1px solid var(--gray-200); border-radius:var(--radius-md); }
.plan-table th { color:var(--primary); font-size:12px; letter-spacing:.03em; text-transform:uppercase; background:var(--primary-light); }
.plan-table tr:last-child td { border-bottom:0; }
.plan-table td:last-child { white-space:nowrap; }
.admin-skip-link { position:fixed; z-index:1000; top:-60px; left:50%; transform:translateX(-50%); padding:10px 16px; background:var(--secondary); color:var(--gray-900); border-radius:0 0 var(--radius-md) var(--radius-md); font-weight:var(--font-bold); }
.admin-skip-link:focus { top:0; outline:3px solid var(--primary); }
@keyframes plan-shimmer { to { background-position:-200% 0; } }
@media (max-width: 700px) {
  .planning-shell { padding:26px 16px 52px; }
  .planning-head, .assignment, .panel-heading { display:block; }
  .planning-head > *, .assignment > *, .panel-heading > * { margin-bottom:12px; }
  .planning-head h1 { font-size:26px; }.planning-actions { padding-top:8px; }
  .plan-grid, .form-grid { grid-template-columns:1fr; }
  .plan-panel { padding:16px; overflow:hidden; }
  .assignment { padding:16px 0; }.assignment .switch-label { display:inline-block; margin-right:10px; }
  .dialog-actions { flex-direction:column-reverse; }.dialog-actions .plan-btn { width:100%; }
}
@media (max-width:430px) {
  .form-field.full { grid-column:auto; }
  .plan-table { min-width:610px; }
}