/* Institut profile: warm paper, fine brass rules, and the school's Raleway/Mulish
   pairing. Scoped so that the University profile keeps its separate identity. */
@font-face{font-family:'Institut Raleway';src:url('./fonts/raleway.ttf');font-weight:100 900;font-display:swap}
@font-face{font-family:'Institut Mulish';src:url('./fonts/mulish.ttf');font-weight:200 1000;font-display:swap}
body.institut{
  --bg:#f8f3ea;--ink:#51463c;--muted:#7b7062;--accent:#7e6929;
  --soft:#f0e9d9;--line:#e5dbc8;--heading:'Institut Raleway',sans-serif;
  --body:'Institut Mulish',sans-serif;--blue:#577575;--red:#a56954;
  background:radial-gradient(ellipse at 86% 0,#e9d9b843,transparent 43%),var(--bg);
  font-weight:400;-webkit-font-smoothing:antialiased;
}
.institut button,.institut input,.institut select,.institut textarea{transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}
.institut button{border-radius:5px}
.institut button:hover{border-color:#b7a268;background:#f5efdf}
.institut button.primary{background:#826d2c;border-color:#826d2c;font-weight:600;box-shadow:0 3px 9px #78612817}
.institut button.primary:hover{background:#6d5921;border-color:#6d5921;box-shadow:0 4px 12px #78612826}
.institut input,.institut select,.institut textarea{border-color:#ded4c2;background:#fffdf8;border-radius:4px;padding:10px 11px}
.institut input:hover,.institut select:hover,.institut textarea:hover{border-color:#c4b38b}
.institut input:focus,.institut select:focus,.institut textarea:focus{border-color:#9d873e;box-shadow:0 0 0 3px #bba56618}
.institut :focus-visible{outline:2px solid #8b752e;outline-offset:4px}
.institut label{font-weight:600;letter-spacing:.025em;font-size:11px}
.institut input[type=checkbox]{width:16px;height:16px}
.institut .check{letter-spacing:0;font-weight:400}
.institut .topbar{position:sticky;top:0;z-index:5;min-height:86px;padding:16px 36px;border-bottom:1px solid #d9caab;background:#fffcf7f5;backdrop-filter:blur(14px)}
.institute-brand{display:flex;align-items:center;gap:15px;flex-shrink:0}
.institute-seal{width:49px;height:49px;color:#a48a22}
.institute-name{display:block;font-family:var(--heading);font-size:20px;font-weight:400;letter-spacing:1.4px;text-transform:uppercase;color:#8c7428;line-height:1.5}
.institute-byline{display:block;font-size:9px;letter-spacing:2.25px;text-transform:uppercase;color:#82745b;margin-top:3px}
.institute-byline i{font-style:normal;padding:0 5px;color:#b7a572}
.masthead-tools{display:flex;align-items:center;gap:24px}
.institut .topbar nav{gap:24px}
.institut .topbar nav a{padding:7px 0;border-radius:0;font-size:11px;color:#7a705e;border-bottom:1px solid transparent}
.institut .topbar nav a[aria-current=page]{background:transparent;border-bottom-color:#aa9144;color:#756021;font-weight:600}
.institut #language{font-size:10px;letter-spacing:1px;padding:8px 0}
.institut .header{padding:29px 36px 26px;position:relative;overflow:hidden;min-height:134px;align-items:center}
.institut .header .eyebrow{font-size:8px;letter-spacing:2.5px;color:#8e7c50;margin-bottom:10px;font-weight:500}
.institut .header h1{font-size:35px;letter-spacing:-.65px;font-weight:400;line-height:1.17;color:#574b3d}
.institut .title-stop{color:#b29a58}
.institut .header p{font-size:12px;color:#8a7d69;margin-top:9px;letter-spacing:.1px}
.institute-intro-art{width:210px;display:flex;gap:23px;align-items:center;color:#b29c60;margin-right:18px}
.institute-intro-art>svg{width:104px;height:104px;opacity:.53;transform:rotate(18deg)}
.institute-intro-art>span{display:flex;align-items:center;gap:12px;font:23px Georgia,serif;opacity:.64}
.institute-intro-art i{width:25px;height:1px;background:#c1ae76}
.institut .layout{padding:0 36px 42px;grid-template-columns:264px minmax(0,1fr);gap:26px}
.institut .sidebar{background:#fdfaf3;border-color:#dfd2b8;border-radius:7px;box-shadow:0 3px 16px #77613b05}
.institut .sidebar>details>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;font-family:var(--heading);font-weight:500;font-size:15px;padding:20px 20px 18px}
.institut .sidebar>details>summary::-webkit-details-marker{display:none}
.institut .sidebar>details>summary::after{content:'+';font-family:var(--body);font-size:18px;color:#a18b50;font-weight:300}
.institut .sidebar>details[open]>summary::after{content:'−'}
.institut .sidebar .form-content{padding:0 20px 20px}
.institut .sidebar .field{margin-bottom:15px}
.institut .sidebar .field:first-child>select{font-size:12px}
.institut .sidebar legend{font:500 11px var(--body);letter-spacing:.7px;text-transform:uppercase;color:#8a794f;margin:4px 0 15px}
.institut .sidebar input,.institut .sidebar select{font-size:12px;min-height:39px}
.institut .sidebar input[type=checkbox]{min-height:0}
.institut .sidebar .place-selected{font-size:9px;line-height:1.7;color:#8d7e62;margin-top:8px}
.institut .sidebar .inner>summary{font-size:10px;color:#8b7950;line-height:1.7}
.institut .sidebar .divider{margin:19px 0}
.institut .sidebar .primary{margin-top:14px;min-height:44px;font-size:12px;letter-spacing:.25px}
.institut .profile-hint{font-size:9px;line-height:1.65;color:#92836e;margin-top:12px}
.institut .sidebar .saved{padding:20px;background:#f5efdf8c}
.institut .saved h3{font-family:var(--heading);font-size:15px;font-weight:500;margin:0 0 9px}
.institut .saved .actions{gap:6px}
.institut .saved .actions button,.institut .file-label{font-size:10px;padding:8px 10px;background:#fffcf7;border-color:#dcd0b9}
.institut .workspace-nav{gap:28px;border-bottom:1px solid #dccfb3;margin-bottom:0;padding:0 3px;overflow:visible}
.institut .workspace-nav button{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;padding:12px 0 15px;font-size:12px;color:#908168;font-weight:500}
.institut .workspace-nav button.active{color:#746024;border-bottom-color:#a38a3e}
.institut .workspace-nav button:hover{color:#615124}
.nav-number{font-size:9px;letter-spacing:1px;margin-right:9px;opacity:.65;font-weight:400}
.institut .exercise{background:none;border:0;border-radius:0;padding:13px 3px 14px;margin:0;align-items:center;gap:14px}
.institut .exercise>div{display:flex;align-items:center;gap:15px;min-width:0}
.institut .exercise label{display:flex;align-items:center;gap:12px;white-space:nowrap;color:#8a7956;font-size:10px;font-weight:500;flex-shrink:0}
.institut .exercise select{font-size:11px;background:transparent;border:0;border-bottom:1px solid #dfd1b3;border-radius:0;width:209px;max-width:100%;padding:6px 23px 6px 1px;margin:0;color:#6e604a}
.institut .exercise p{font-size:10px;font-weight:400;color:#8f816c;line-height:1.65;margin:0;max-width:315px}
.institut .exercise a{font-size:9px;color:#8c7846;text-decoration-color:#bca874}
.institut .status{border-radius:3px;margin:12px 0 0;font-size:11px}
.institut .warnings{margin:12px 0 0}
.institut .result-card{border-color:#daccaf;border-radius:7px;background:#fffdf9;box-shadow:0 9px 30px #70572608,0 1px 3px #70572606;position:relative}
.institut .result-top{border-bottom:1px solid #e9dfcd;padding:19px 24px 18px;gap:10px;background:linear-gradient(110deg,#fffdf9,#fbf7ee)}
.institut .result-top .eyebrow{font-size:8px;letter-spacing:2.1px;font-weight:500;color:#9a854e;margin-bottom:7px}
.institut .result-top h2{font-size:24px;font-weight:400;letter-spacing:-.4px;color:#62513d}
.institut .result-top .meta{font-size:10px;letter-spacing:.15px;color:#918168;margin-top:7px}
.institut .result-top .actions{gap:3px;justify-content:flex-end;flex-shrink:0}
.institut .result-top .actions button{border-color:transparent;background:none;font-size:9px;padding:8px;color:#897347;display:inline-flex;align-items:center;gap:5px}
.institut .result-top .actions button:hover{background:#eee4cf}
.institut .result-top .actions svg{height:14px;width:14px}
.institut .chart-area{grid-template-columns:minmax(0,1fr) 155px;padding:19px 22px 20px;gap:20px;align-items:center}
.institut .wheels svg{max-height:640px}
.institut .chart-area svg text{stroke:#fffdf9;stroke-width:.3px}
.institut .chart-facts{padding:0;border-left:0}
.institut .fact{position:relative;padding:0 0 17px 37px;margin:0 0 17px;border-bottom:1px solid #e9dfcd}
.institut .fact::before{position:absolute;left:0;top:0;font:28px/1 Georgia,serif;color:#a98d42}
.institut .fact[data-point=sun]::before{content:'☉'}
.institut .fact[data-point=moon]::before{content:'☽'}
.institut .fact[data-point=ascendant]::before{content:'AC';font:400 12px/25px var(--heading);letter-spacing:1px}
.institut .fact.phase-fact::before{content:'◌';font-size:30px}
.institut .fact span{font-size:8px;letter-spacing:1.3px;color:#a08b62}
.institut .fact strong{font-size:12px;line-height:1.55;font-weight:500;margin:5px 0 2px;color:#6b5a43}
.institut .fact small{font-size:9px;color:#a28e6a}
.institut .ring-key{font-size:9px;color:#8d7b5b;line-height:2.2;margin:4px 0;padding-left:3px}
.institut .ring-key i{width:5px;height:5px;margin-right:8px}
.institut .visibility{padding:15px 22px;gap:15px;border-color:#e9dfcd;background:#faf6ec}
.institut .visibility>span{font-weight:500;color:#97825b;font-size:10px}
.institut .visibility label{font-size:10px;font-weight:400;color:#847253}
.institut .visibility select{font-size:10px;padding:6px 9px;background:#fffdf9;border-color:#ded2b8}
.institut .visibility .check{font-size:10px}
.institut .tabs{border-color:#e9dfcd;padding:13px 22px 0;gap:17px;background:#fffdf9}
.institut .tabs button{padding:9px 0 12px;font-size:11px;font-weight:400;color:#9a8867}
.institut .tabs button.active{color:#766027;border-bottom-color:#a48a3d;font-weight:600}
.institut .table-panel{padding:18px 22px 22px;min-height:210px}
.institut .table-panel>h3{font-size:13px;color:#8a774d;font-weight:500;margin:6px 0 12px}
.institut th{font-size:8px;letter-spacing:1.25px;color:#a08c62;font-weight:500}
.institut td{font-size:11px;font-weight:400;color:#756349}
.institut th,.institut td{padding:10px 8px;border-color:#ece3d3}
.institut tbody tr:hover{background:#f8f2e5}
.institut .legend-row{padding:13px 0;border-bottom:1px solid #e8deca;font-size:11px;color:#8b7853}
.institut .legend-row strong{font-family:var(--heading);font-size:26px;font-weight:400;color:#8c7234}
.institut .notes label{font-size:11px;color:#88734b;margin-top:18px}
.institut .notes textarea{font-size:13px;line-height:1.9;background:#fdfaf2;padding:15px;border-color:#e4d8c0}
.institut .method-details{border-color:#e9dfcd;padding:13px 23px;background:#fcf8ef;font-size:10px}
.institut .method-details summary{color:#9c8965}
.institut .degree-search{margin:21px 0 10px;gap:12px;padding:18px 22px;border:1px solid #e2d5bc;border-radius:5px;background:#fdf9f0}
.institut .degree-search label{font-size:10px;color:#8a7750}
.institut .degree-search input,.institut .degree-search select{font-size:11px}
.institut .degree-search button{font-size:11px;color:#8a723a;background:#fffdf7;min-height:38px;margin-left:auto}
.institut .module{margin-top:17px;border-color:#dfd2b8;background:#fffdf8;padding:28px;border-radius:6px;box-shadow:0 6px 22px #70572607}
.institut .module h2{font-weight:400;font-size:29px;color:#79623d;margin-bottom:13px}
.institut .module .eyebrow{font-weight:400;font-size:9px;letter-spacing:2px;margin-bottom:12px;color:#a18b5b}
.institut .module .controls label{font-size:10px;color:#8c7851}
.institut .module .controls input,.institut .module .controls select{font-size:12px}
.institut .footer{padding:0 36px 27px;font-size:9px;line-height:1.9;color:#9d8b68}
.institut .footer a{color:#8e7a4b}
.institut dialog{background:#fffdf8;border-color:#c8b780;box-shadow:0 25px 90px #342d2440;padding:22px;border-radius:7px}
.institut dialog::backdrop{background:#40362678;backdrop-filter:blur(3px)}
.institut .zoom-head{padding:0 0 13px;border-bottom:1px solid #e1d5bc;margin-bottom:15px}
.institut .zoom-head h2{font-weight:400;color:#8a7135}
.institut #zoom-level{accent-color:#a48a3c}
.institut .zoom-head label{font-size:10px;color:#8b774d}
.institut .zoom-head button{font-size:11px;background:#fffaf0;border-color:#e2d5ba}
@media(min-width:1500px){.institut .layout{grid-template-columns:282px minmax(0,1fr);gap:30px}.institut .chart-area{grid-template-columns:minmax(0,1fr) 177px;padding:22px 33px 25px;gap:28px}.institut .fact strong{font-size:14px}.institut .wheels svg{max-height:690px}}
@media(max-width:1180px){.institut .layout{padding:0 25px 35px;grid-template-columns:248px minmax(0,1fr);gap:20px}.institut .topbar{padding:15px 25px}.institut .header{padding:27px 25px 24px}.institut .exercise>div{display:block}.institut .exercise p{margin-top:6px;max-width:none}.institut .chart-area{grid-template-columns:minmax(0,1fr) 133px;gap:10px;padding:19px 16px}.institut .fact{padding-left:30px}.institut .fact strong{font-size:11px}.institut .result-top{padding:18px;flex-wrap:wrap}.institut .result-top .actions{margin-left:auto}.institut .workspace-nav{gap:23px}}
@media(max-width:1000px){.institute-name{font-size:17px}.institute-seal{width:42px;height:42px}.institute-brand{gap:11px}.institute-byline{font-size:8px;letter-spacing:1.7px}.masthead-tools{gap:18px}.institut .topbar nav{gap:18px}.institut .topbar nav a{font-size:10px}.institut .chart-area{display:block}.institut .chart-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:10px 9px 0;border-top:1px solid #e9dfcd;padding-top:18px}.institut .fact{margin:0;padding-bottom:12px}.institut .ring-key{grid-column:1/-1;display:flex;gap:18px;flex-wrap:wrap}.institut .workspace-nav{gap:18px}.institut .workspace-nav button{font-size:11px}.nav-number{font-size:8px;margin-right:6px}.institut .header h1{font-size:31px}.institute-intro-art{width:160px;margin-right:0}.institute-intro-art>svg{width:90px;height:90px}.institute-intro-art>span{display:none}}
@media(max-width:720px){
  .institut .topbar{padding:14px 18px 10px;min-height:0;display:block;position:relative}
  .institute-brand{gap:11px}.institute-name{font-size:18px;letter-spacing:.8px}.institute-byline{font-size:8px;letter-spacing:1.8px}.institute-seal{height:43px;width:43px}
  .masthead-tools{justify-content:space-between;margin-top:15px;border-top:1px solid #ece3d1;padding-top:8px;gap:14px}
  .institut .topbar nav{width:auto;order:0;gap:23px}.institut .topbar nav a{font-size:10px;flex:none;padding:6px 0}.institut #language{padding:4px 0}
  .institut .header{min-height:0;padding:25px 20px 24px}.institut .header .eyebrow{font-size:7px;letter-spacing:2px;margin-bottom:11px}.institut .header h1{font-size:28px;letter-spacing:-.5px;max-width:290px;line-height:1.2}.institut .header p{font-size:10px;line-height:1.7;max-width:260px;margin-top:10px}
  .institute-intro-art{position:absolute;width:130px;right:-56px;top:22px;opacity:.65}.institute-intro-art>svg{width:120px;height:120px}
  .institut .layout{display:flex;gap:20px;padding:0 13px 30px}.institut .sidebar>details>summary{padding:17px 18px;font-size:14px}.institut .sidebar .form-content{padding:0 18px 18px}.institut .sidebar .saved{padding:17px 18px}
  .institut .sidebar .saved h3{font-size:13px}.institut .saved .save-name{margin-top:3px}.institut .saved select{margin:7px 0}.institut .saved .hint{font-size:9px}
  .institut .workspace-nav{gap:0;justify-content:space-between;padding:0 4px}.institut .workspace-nav button{font-size:10px;padding:10px 0 13px}.nav-number{font-size:8px;margin-right:5px}
  .institut .exercise{padding:13px 4px 15px;gap:10px;align-items:start}.institut .exercise label{gap:8px;font-size:9px}.institut .exercise select{width:188px;font-size:10px}.institut .exercise p{font-size:9px;max-width:265px}.institut .exercise a{font-size:8px;max-width:50px;line-height:1.8;margin-top:6px}
  .institut .result-top{padding:17px 18px 13px;gap:11px}.institut .result-top h2{font-size:24px}.institut .result-top .eyebrow{font-size:7px;letter-spacing:1.7px}.institut .result-top .meta{font-size:9px;line-height:1.8}.institut .result-top .actions{margin:0;gap:4px;justify-content:space-between;width:100%;border-top:1px solid #ede3cf;padding-top:10px}.institut .result-top .actions button{padding:5px 6px;font-size:9px}.institut .result-top .actions svg{width:13px;height:13px}
  .institut .chart-area{padding:12px 5px 17px}.institut .chart-facts{margin:10px 14px 0;padding-top:17px;gap:15px 13px}.institut .fact{padding-left:31px;padding-bottom:12px}.institut .fact strong{font-size:11px}.institut .fact span{font-size:7px}.institut .fact small{font-size:8px}.institut .ring-key{font-size:8px;gap:11px}
  .institut .visibility{padding:15px;gap:13px}.institut .visibility>span{width:100%;font-size:9px}.institut .visibility .check{font-size:9px}.institut .visibility label{font-size:9px}.institut .visibility select{font-size:10px}
  .institut .tabs{padding:10px 14px 0;gap:16px;overflow:auto}.institut .tabs button{font-size:10px;padding:9px 0 11px}.institut .table-panel{padding:15px 14px}.institut th,.institut td{padding:9px 5px}.institut td{font-size:10px}
  .institut .degree-search{padding:15px;margin-top:18px;gap:10px}.institut .degree-search label{width:72px}.institut .degree-search label:first-child{width:105px}.institut .degree-search button{margin:3px 0 0;width:100%;font-size:10px}
  .institut .method-details{padding:13px 16px;font-size:9px}.institut .module{padding:22px 18px}.institut .module h2{font-size:25px}.institut .footer{padding:0 20px 23px;font-size:8px}.institut dialog{padding:17px}.institut .zoom-head{gap:11px}.institut .zoom-head h2{font-size:19px}
}
@media(prefers-reduced-motion:reduce){.institut button,.institut input,.institut select,.institut textarea{transition:none}}
@media print{
  body.institut{background:white;color:#42392c}.institut .layout{display:block;padding:0}.institut .result-card{border:0;box-shadow:none;background:white}.institut .result-top{background:none;padding:0 0 10px}.institut .chart-area{display:block;padding:0}.institut .chart-facts{display:none}.institut .table-panel{padding:0}.institut .topbar,.institut .header,.institut .sidebar,.institut .exercise,.institut .workspace-nav,.institut .visibility,.institut .tabs,.institut .footer,.institut .degree-search,.institut .degree-matches{display:none!important}.institut .wheels svg{max-height:155mm}
}
