/* Shared Branch visual language. Layout and academic rules remain in their modules. */
:root{--paper:#f8f8f2;--ink:#203e34;--muted:#687b70;--line:#dfe6dc;--ease-branch:cubic-bezier(.22,1,.36,1);--branch-shadow:0 8px 32px #203e3407}
body{background:radial-gradient(ellipse at 90% 0,#eaf0e2 0,transparent 42%),var(--paper);-webkit-font-smoothing:antialiased}
.sidebar,.branch-sidebar{background:linear-gradient(165deg,#eef3e9,#e7eee1);isolation:isolate;overflow:hidden}
.sidebar::after,.branch-sidebar::after{content:"";position:absolute;z-index:-1;pointer-events:none;bottom:65px;right:-26px;width:190px;height:260px;background:url('/branch-sprig.svg') center/contain no-repeat;opacity:.38}
.sidebar-bottom{position:relative}.brandmark{box-shadow:0 5px 14px #203e3414;transition:transform .6s var(--ease-branch)}.brand:hover .brandmark{transform:rotate(-7deg)}
.nav{transition:background .3s,color .3s,box-shadow .3s}.nav:hover{background:#dde8d8;color:#284d3b}.nav.active{background:#d6e5cf;box-shadow:inset 3px 0 #608363}
button,a,summary,input,select,textarea{transition:background-color .25s,border-color .25s,color .25s,box-shadow .3s,opacity .25s}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #47795c;outline-offset:4px}
.button,button.primary,.head-actions button,.generate-bar button{border-radius:10px}.button:hover,button.primary:hover{box-shadow:0 4px 14px #203e3410}.primary:hover{background:#315744;border-color:#315744}.text-button:hover{text-decoration:underline;text-underline-offset:4px}
.intro h1{font-weight:600;letter-spacing:-1.6px}.degree{background:#ffffffb8;border-radius:18px;box-shadow:var(--branch-shadow)}
.stats,.tree-shell,.graduation-readiness,.audit-reference,.audit-entry,.onboarding-card{border-radius:18px;box-shadow:var(--branch-shadow)}
.stats{background:#ffffffb5;margin-bottom:24px}.stats>div{border-color:#e6eadd}.stats strong{letter-spacing:-.7px}
.tree-heading h2{display:flex;align-items:center;gap:10px}.tree-heading h2::before{content:"";width:20px;height:24px;background:url('/branch-leaf.svg') center/contain no-repeat}
.tree-heading{padding-top:20px}.semester-key{color:#627465;font-size:10px}.tree-filter-bar{border-top:0}.tree-controls{background:#fafbf7}.search{background:#fff;border-radius:10px}.search:focus-within{border-color:#8da789;box-shadow:0 0 0 3px #7e9c6b13}
.tree-viewport{background:radial-gradient(#c8d7bf80 .7px,transparent .7px),#f7faf3;background-size:22px 22px;scrollbar-width:thin;scrollbar-color:#b5c5ac transparent}
.tree-node.course{border-radius:12px;box-shadow:0 2px 8px #213c3404;transition:box-shadow .35s,border-color .35s,background-color .35s,opacity .3s;transform:none}
.tree-node.course:hover{transform:none;box-shadow:0 6px 20px #213c3415}.tree-node.course.selected{outline-width:2px;outline-offset:3px}
.tree-node.course>strong{font-weight:500;line-height:1.45}.tree-plan{border-radius:5px;font-size:7px;letter-spacing:.35px}.tree-node.needs-decision{opacity:.82}.tree-node.needs-decision:hover,.tree-node.needs-decision.selected,.tree-node.needs-decision:focus-visible{opacity:1}
.tree-add-course{border-radius:12px;background:#ffffff42;transition:background .3s,border-color .3s,box-shadow .3s}.tree-add-course:hover{background:#eef5e8;border-color:#77946a;box-shadow:0 4px 16px #203e340b}
.tree-add-course>span{transition:color .3s,transform .5s var(--ease-branch)}.tree-add-course:hover>span{transform:scale(1.12);color:#447454}.tree-controls .tree-buttons{width:100%}.tree-zoom-controls{margin-left:auto}.tree-options .tree-key{padding:10px 0 14px;border-bottom:1px solid var(--line);margin-bottom:10px;line-height:1.6}
.semester-lane{border-top-style:solid;border-color:#adc09f30}.semester-lane-title strong{letter-spacing:-.4px}.semester-lane-title>span{border-radius:999px;letter-spacing:.6px}
.planning-notes,.audit-reference{background:#fff}.planning-notes>summary,.audit-reference>summary{color:#617464}.graduation-readiness{background:#fffaf0;border-color:#e6dab7}
dialog{border-radius:20px;box-shadow:0 28px 100px #1c38242b}dialog::backdrop{background:#203e3442;backdrop-filter:blur(7px)}.tree-inspector{box-shadow:-8px 0 32px #203e340a}
#toast,.toast{border-radius:12px;box-shadow:0 8px 28px #203e3420}footer{padding-top:20px;color:#71816e}
/* Schedule Lab inherits the same material and motion without changing calendar sizing. */
.topbar{background:#f8faf4e8;border-bottom-color:#e0e7da}.panel,.schedule-card,.calendar-wrap,.table-wrap{border-radius:16px;box-shadow:var(--branch-shadow)}
.panel{background:#fffefb}.course-pick{border-radius:12px}.schedule-card{background:#fffefb;transition:box-shadow .35s,transform .35s var(--ease-branch)}.schedule-card:hover{box-shadow:0 10px 30px #203e3410;transform:translateY(-2px)}
.page-head h1{letter-spacing:-1.4px}.page-head .eyebrow{color:#6f8666}.schedule-count{border-radius:12px}.generate-bar{border-radius:16px;background:#fafcf5ee;box-shadow:0 8px 32px #203e3410}
.lab-overlay-close{width:34px;height:34px;box-shadow:0 3px 12px #203e3412}.lab-launch-curtain{background:#f8f8f2}
@keyframes branch-arrive{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
.intro,.page-head{animation:branch-arrive .65s var(--ease-branch) both}.stats{animation:branch-arrive .75s .06s var(--ease-branch) both}
@media(max-width:760px){.sidebar::after,.branch-sidebar::after{display:none}.sidebar{flex-wrap:wrap;overflow:visible;padding:14px 16px;gap:12px}.sidebar .workspace-navigation{display:flex;flex-wrap:wrap;width:100%;gap:5px;overflow:visible}.sidebar .workspace-navigation .nav{display:block!important;flex:1 1 auto;margin:0!important;padding:10px 9px;font-size:10px;min-width:0;white-space:normal}.sidebar .workspace-navigation .nav::before{display:none}.stats,.tree-shell,.graduation-readiness{border-radius:14px}.tree-heading{padding-top:16px}.page-head h1{letter-spacing:-.9px}.nav.active{box-shadow:none}.tree-node.course>strong{font-weight:500}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{body{background:white}.sidebar::after,.branch-sidebar::after,.tree-heading h2::before{display:none}.panel,.schedule-card,.calendar-wrap,.table-wrap{box-shadow:none}.intro,.stats,.page-head{animation:none}}

/* Focused interface refinements */
.tree-heading h2::before{display:none}.results-grid{grid-template-columns:repeat(2,minmax(0,390px));justify-content:center;gap:20px}.schedule-card{min-width:0}.semester-workload.pending-fill:empty{display:none}@media(max-width:760px){.results-grid{grid-template-columns:minmax(0,390px)}}

/* Full-size cards; a narrower weekly calendar within each card. */
.results-grid{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch}.schedule-card .mini-calendar{width:82%;max-width:350px;margin-inline:auto}.semester-workload-stack button{flex-shrink:0}.semester-workload.pending-fill .semester-workload-stack{background:#e1e7de!important}@media(max-width:760px){.results-grid{grid-template-columns:minmax(0,1fr)}.schedule-card .mini-calendar{width:88%}}

.beta-feedback-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;padding:14px 18px;border:1px solid #cdddc4;border-radius:12px;background:#eaf2e3}.beta-feedback-banner strong{font-size:13px}.beta-feedback-banner span{display:block;margin-top:4px;font-size:11px;color:#526d58}.beta-feedback-banner button{white-space:nowrap;background:#fff9}.audit-contribution{padding:16px;margin:18px 0;background:#f3f7ee;border:1px solid #d6e1ce;border-radius:12px}.contribution-opt-in{display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.6}.contribution-opt-in input{margin-top:4px;accent-color:#365b42;flex-shrink:0}#feedbackPreviewData{max-height:220px;overflow:auto;background:white;padding:12px;border:1px solid #dce5d7;border-radius:8px;font-size:10px;white-space:pre-wrap;overflow-wrap:anywhere}.contribution-receipt{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--line)}@media(max-width:760px){.beta-feedback-banner{align-items:flex-start;padding:12px;gap:10px}.beta-feedback-banner .button{font-size:10px;padding:10px}.beta-feedback-banner span{line-height:1.5}}@media print{.beta-feedback-banner{display:none}}

.feedback-hero{display:none;align-items:center;justify-content:space-between;gap:32px;padding:32px;margin-top:24px;border:1px solid #d1dfc8;border-radius:18px;background:linear-gradient(120deg,#edf4e7,#f8faf3);box-shadow:var(--branch-shadow)}.feedback-hero>div:first-child{max-width:560px}.feedback-hero h1{font-size:32px;margin:16px 0;letter-spacing:-1.2px}.feedback-hero p{font-size:13px;line-height:1.7;color:#607761}.feedback-hero-action{flex:0 0 260px;background:#ffffffb8;border:1px solid #dbe5d5;border-radius:16px;padding:30px 18px;display:flex;flex-direction:column;align-items:stretch;text-align:center;gap:16px}.feedback-hero-action .button{padding:15px}.feedback-hero-action small{font-size:10px;color:#687c65}main:has(#auditEntry.has-plan:not(.has-onboarding):not(.is-processing)):not(:has(#auditError:not([hidden]))) .feedback-hero{display:flex}#auditEntry.has-plan:not(.has-onboarding):not(.is-processing):not(:has(#auditError:not([hidden]))){display:none}@media(max-width:760px){.feedback-hero{flex-direction:column;align-items:stretch;padding:22px;gap:16px}.feedback-hero-action{flex:auto;padding:18px}.feedback-hero h1{font-size:28px}.feedback-hero .eyebrow{font-size:9px;line-height:1.6}}@media print{.feedback-hero{display:none!important}}
.audit-entry #auditSupportOpen{margin-top:8px}
#supportRequestDialog{max-width:560px}
#supportRequestDialog form{display:grid;gap:12px}
#supportRequestDialog form>label{display:grid;gap:6px}
#supportRequestDialog input[type="text"],#supportRequestDialog input[type="email"]{width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--line,#d6e1d4);border-radius:10px;background:#fff;color:inherit;font:inherit}
#supportRequestDialog [role="status"]{min-height:1.4em}
.support-receipt-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px;border:1px solid var(--line,#d6e1d4);border-radius:12px;background:rgba(255,255,255,.7)}
.support-receipt-row p{flex:1 1 220px;margin:0}
#supportRequestDialog input:not([type]),#supportRequestDialog input[type="email"]{width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--line,#d6e1d4);border-radius:10px;background:#fff;color:inherit;font:inherit}
#feedbackDialog textarea,#supportRequestDialog textarea{width:100%;padding:10px 12px;border:1px solid var(--line,#d6e1d4);border-radius:10px;background:#fff;color:inherit;font:inherit;resize:vertical}
#supportRequestDialog input[type="file"]{display:block;width:100%;margin-top:8px;font:inherit;font-size:12px}
.support-audit-share{padding:14px;border:1px solid var(--line,#d6e1d4);border-radius:12px;background:#f5f8f1}.support-audit-share>label:first-child{display:flex;align-items:flex-start;gap:9px;line-height:1.55}.support-audit-share p{margin-bottom:0}
.submission-confirmation-page{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;overflow:auto!important;background:var(--paper,#f8f8f2)!important}.submission-confirmation-page::backdrop{background:var(--paper,#f8f8f2)!important;backdrop-filter:none!important}.submission-confirmation-page .dialog-top{position:sticky;top:0;z-index:2;padding:18px clamp(20px,5vw,60px);background:#f8f8f2ed;border-bottom:1px solid var(--line,#d6e1d4)}.submission-success{display:flex;min-height:calc(100dvh - 70px);max-width:660px;margin:0 auto;flex-direction:column;justify-content:center;align-items:flex-start;gap:18px;padding:clamp(24px,7vw,72px)}.submission-success h1,.submission-success h2{margin:0;font-size:clamp(30px,5vw,48px);letter-spacing:-1.4px}.submission-success p{font-size:16px;line-height:1.7;color:var(--muted,#687b70)}.submission-success-actions{display:flex;gap:12px;flex-wrap:wrap}.submission-success[hidden]{display:none!important}
.data-removal-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 0;border-top:1px solid var(--line,#d6e1d4)}.data-removal-row>div:first-child{display:grid;gap:4px}.data-removal-row small{color:var(--muted,#687b70)}.data-removal-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}@media(max-width:600px){.data-removal-row{align-items:flex-start;flex-direction:column}.submission-success-actions{flex-direction:column;align-items:stretch;width:100%}}
#supportRequestDialog textarea{width:100%;padding:10px 12px;border:1px solid var(--line,#d6e1d4);border-radius:10px;background:#fff;color:inherit;font:inherit;resize:vertical}#supportRequestDialog input[type="file"]{display:block;width:100%;margin-top:8px;font:inherit;font-size:12px}.support-audit-share{padding:14px;border:1px solid var(--line,#d6e1d4);border-radius:12px;background:#f5f8f1}.support-audit-share>label:first-child{display:flex;align-items:flex-start;gap:9px;line-height:1.55}.support-audit-share p{margin-bottom:0}
