/* Physics dashboard (index.html). Loaded after style.css and account.css. */
.pd { width: min(68rem, calc(100% - 2rem)); margin: 1.75rem auto 0; color: #111827; }
.pd-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.pd-kicker { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #1d4ed8; }
.pd-student .pd-kicker { color: #0f766e; }
.pd-head h1 { font-size: 2rem; line-height: 2.5rem; font-weight: 700; }
.pd-sub { color: #4b5563; margin-top: 0.25rem; max-width: 40rem; }
.pd-label { font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: #4b5563; margin: 0 0 0.75rem; }

.pd-tools { display: grid; grid-template-columns: repeat(auto-fill, minmax(14.5rem, 1fr)); gap: 0.75rem; margin-bottom: 1.75rem; }
.pd-tool {
	display: block; background: #fff; border: 1px solid #dbe3ef; border-radius: 0.875rem; padding: 1rem 1.125rem;
	transition: border-color 0.15s, transform 0.15s, box-shadow 0.15s;
}
.pd-tool:hover, .pd-tool:focus-visible { border-color: #1d4ed8; transform: translateY(-1px); box-shadow: 0 8px 20px -14px rgb(30 58 138 / 0.6); outline: none; }
.pd-tool b { display: block; font-size: 1.0625rem; font-weight: 600; margin-top: 0.625rem; }
.pd-tool > span:last-child { display: block; font-size: 0.8125rem; color: #6b7280; margin-top: 0.25rem; line-height: 1.4; }
.pd-ico { width: 2.5rem; height: 2.5rem; border-radius: 0.625rem; display: grid; place-items: center; background: #e6efff; color: #1d4ed8; }
.pd-student .pd-ico { background: #dff5f1; color: #0f766e; }
.pd-ico svg { width: 1.375rem; height: 1.375rem; }

.pd-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); gap: 1rem; align-items: start; }
.pd-panel { background: #fff; border: 1px solid #dbe3ef; border-radius: 0.875rem; padding: 1.125rem 1.25rem; }
.pd-wide { grid-column: 1 / -1; }
.pd-panel-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.5rem; }
.pd-panel-head h2 { font-size: 1.125rem; font-weight: 700; }
.pd-row { display: flex; gap: 0.5rem; align-items: center; }
.pd-row .search { width: 15rem; background: #fff; }
.pd-muted { color: #6b7280; font-size: 0.875rem; }

.pd-msgs { margin: 0.75rem 0; display: grid; gap: 0.5rem; max-height: 26rem; overflow: auto; }
.pd-msgs li { border: 1px solid #eef1f6; border-radius: 0.625rem; padding: 0.625rem 0.75rem; background: #fafbfd; }
.pd-msg-top { display: flex; justify-content: space-between; gap: 1rem; font-size: 0.875rem; }
.pd-msgs p { margin-top: 0.25rem; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 0.9375rem; }

.pd-saves li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.5rem 0; border-bottom: 1px solid #f0f2f6; font-size: 0.9375rem; }
.pd-saves li:last-child { border-bottom: 0; }
.pd-saves a { color: #1d4ed8; font-weight: 500; }
.pd-saves a:hover { text-decoration: underline; }
.pd-saves .pd-muted { white-space: nowrap; font-size: 0.8125rem; }

.pd-panel textarea {
	width: 100%; min-height: 7rem; padding: 0.625rem 0.75rem; font: inherit; color: #111827; resize: vertical;
	background: #f9fafb; border: 1px solid #d1d5db; border-radius: 0.5rem; margin: 0.25rem 0 0.5rem;
}
.pd-panel textarea:focus { outline: 2px solid #3b82f6; outline-offset: -1px; background: #fff; }

.pd-banner { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem; padding: 0.75rem 1rem; margin-bottom: 1.5rem; border-radius: 0.75rem; background: #fff6d6; border: 1px solid #f0dc8a; }
.pd-banner p { flex: 1 1 16rem; }
.pd-foot { text-align: center; margin: 2rem 0 0; font-size: 0.875rem; }
.pd-foot a { color: #1d4ed8; }
