.button.outline{background:white;color:var(--green);border-color:#d6dfd0}.button.outline:hover{background:#eff3e5}.portal-toolbar{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:30px}.portal-toolbar form{display:flex;align-items:center;gap:12px}.portal-toolbar label{font-size:12px}.portal-toolbar select,.portal-filters input,.portal-filters select,.aspiration-form input,.aspiration-form textarea,.aspiration-form select{font:inherit;display:block;border:1px solid #d6dfd0;border-radius:6px;background:#fff;color:var(--ink);padding:12px 15px;min-width:0;max-width:100%}.portal-filters{display:flex;gap:12px;align-items:end;margin-bottom:35px;flex-wrap:wrap}.portal-filters>input{flex:1;min-width:170px}.portal-filters label{font-size:11px;flex:1}.portal-filters label input,.portal-filters label select{width:100%;margin-top:5px}.portal-filters .button{padding:13px 20px}.portal-empty{padding:65px 30px;text-align:center;background:var(--cream);border:1px solid var(--line);border-radius:10px;grid-column:1/-1}.portal-empty>span{display:block;color:#a6b885;font-size:48px;margin-bottom:15px}.portal-empty h2{font-size:27px}.portal-empty h3{font-size:21px}.portal-empty p{max-width:540px;margin:0 auto 20px;font-size:14px}.portal-empty.compact{padding:35px 25px;margin-bottom:35px}.org-legend{display:flex;gap:25px;font-size:11px;color:var(--muted);margin-bottom:25px}.org-canvas{padding:30px 20px 40px;background:#fafbf7;border:1px solid var(--line);border-radius:10px;overflow-x:auto}.org-level{display:flex;justify-content:center;margin:0;padding:26px 0 0;list-style:none;position:relative;width:max-content;min-width:100%}.org-level>li{position:relative;padding:26px 12px 0;text-align:center;flex:1;list-style:none;min-width:210px}.org-level>li:before,.org-level>li:after{content:'';position:absolute;top:0;width:50%;height:26px;border-top:1px solid #a9b99c}.org-level>li:before{right:50%}.org-level>li:after{left:50%;border-left:1px solid #a9b99c}.org-level>li:first-child:before,.org-level>li:last-child:after{border:0}.org-level>li:last-child:before{border-right:1px solid #a9b99c;border-radius:0 5px 0 0}.org-level>li:first-child:after{border-radius:5px 0 0 0}.org-level>li:only-child{padding-top:0}.org-level>li:only-child:before,.org-level>li:only-child:after{display:none}.org-level .org-level:before{content:'';position:absolute;top:0;left:50%;height:26px;border-left:1px solid #a9b99c}.org-level>li.coordination:before,.org-level>li.coordination:after{border-style:dashed}.org-node{padding:22px 18px;background:white;border:1px solid #dbe4d1;border-radius:8px;min-width:190px;max-width:250px;margin:auto;box-shadow:0 5px 15px #163c3206;position:relative}.org-node>img{width:65px;height:65px;border-radius:50%;object-fit:cover;margin:0 auto 15px}.org-avatar{display:grid;place-items:center;width:55px;height:55px;border-radius:50%;background:#edf2e2;color:#809b5f;font-size:32px;margin:0 auto 15px}.org-node .eyebrow{font-size:9px;letter-spacing:1px;margin-bottom:10px}.org-node h3{font-size:15px;letter-spacing:-.3px;margin-bottom:7px}.org-node small{font-size:10px;color:var(--muted)}.legal-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-bottom:55px}.legal-card{border:1px solid var(--line);border-radius:9px;padding:28px;display:flex;align-items:start;gap:22px;background:white}.legal-symbol{background:#edf3df;color:#62823d;border-radius:9px;min-width:56px;min-height:65px;display:grid;place-items:center;font-size:26px;padding:8px}.legal-card>div{min-width:0}.legal-card h3{font-size:22px;margin-top:10px}.legal-card dl{font-size:12px}.legal-card dl>div,.detail-facts dl>div{margin:14px 0}.legal-card dt,.detail-facts dt{font-size:10px;color:var(--muted)}.legal-card dd,.detail-facts dd{margin:3px 0 0;overflow-wrap:anywhere}.legal-card small{font-size:11px;color:var(--muted)}.legal-card .prose{font-size:12px}.legal-card .prose h2,.legal-card .prose h3{font-size:18px}.archive-note{font-size:11px;background:#fbf1dd;color:#917441;padding:10px;border-radius:4px}.portal-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.portal-card{display:block;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}.portal-card:hover{transform:translateY(-4px);box-shadow:0 10px 25px #0001}.portal-card>img{width:100%;height:220px;object-fit:cover}.portal-card>div:not(.portal-placeholder){padding:25px}.portal-card h3{font-size:21px;margin:12px 0 18px}.portal-card p{font-size:13px}.portal-placeholder{height:210px;background:linear-gradient(135deg,#e5edd6,#f6f8f0);display:grid;place-items:center;font-size:70px;color:#99ae7b}.portal-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:50px;margin-bottom:45px}.detail-cover{width:100%;max-height:550px;object-fit:contain;border-radius:9px}.detail-facts{background:var(--cream);border:1px solid var(--line);border-radius:9px;padding:26px;height:fit-content}.detail-facts dd{font-size:13px}.detail-facts .button{font-size:12px;margin-top:20px}.detail-facts .text-link{font-size:12px;line-height:1.8}.calendar-top{display:flex;align-items:center;justify-content:space-between;margin:35px 0 25px;gap:20px}.calendar-top h2{font-size:31px;margin-bottom:0}.calendar-controls{display:flex;gap:8px}.calendar-controls a{border:1px solid var(--line);padding:8px 14px;border-radius:6px;background:white;font-size:12px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--line);border-top:1px solid var(--line);border-radius:8px;overflow:hidden}.calendar-weekday{padding:13px;text-align:center;font-size:11px;letter-spacing:1px;background:#eef3e5;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-weight:600}.calendar-day{padding:10px;min-height:120px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:white}.calendar-day.outside{background:#f9faf7}.day-number{font-size:12px;display:inline-grid;place-items:center;height:25px;min-width:25px;border-radius:50%;margin-bottom:5px}.today-cell .day-number{background:var(--green);color:white}.calendar-event{display:block;font-size:10px;padding:4px 6px;line-height:1.5;border-radius:3px;margin:3px 0;overflow-wrap:anywhere}.holiday{background:#f8e3df;color:#a85d4b}.exam{background:#f8eed7;color:#967029}.admission{background:#e4edf9;color:#56779a}.activity{background:#e9f0df;color:#5a7944}.special{background:#efe6f5;color:#92729e}.calendar-legend{display:flex;gap:20px;flex-wrap:wrap;padding:20px 0;font-size:10px;color:var(--muted)}.calendar-legend span{display:flex;align-items:center;gap:7px}.calendar-legend i{display:block;width:10px;height:10px;border-radius:2px}.calendar-bottom{display:flex;justify-content:space-between;align-items:center;margin:35px 0 15px;gap:25px}.calendar-bottom h2{font-size:28px;margin-bottom:0}.calendar-bottom>div{display:flex;gap:10px;flex-wrap:wrap}.calendar-bottom .button{font-size:11px;padding:11px 16px}.export-note{font-size:11px;margin-bottom:25px}.public-agenda{display:flex;align-items:start;gap:24px;padding:25px 0;border-bottom:1px solid var(--line);scroll-margin-top:25px}.agenda-date{background:#edf2e3;border-radius:8px;min-width:68px;padding:12px;text-align:center;font-size:26px;font-weight:700;line-height:1.2}.agenda-date small{display:block;font-size:10px;color:var(--muted);font-weight:400;margin-top:5px}.public-agenda h3{font-size:22px;margin:9px 0 10px}.public-agenda p{font-size:13px;margin-bottom:10px}.public-agenda .prose{font-size:13px}.download-row{display:flex;align-items:center;gap:24px;padding:25px;border:1px solid var(--line);border-radius:8px;margin-bottom:18px}.document-icon{width:55px;height:65px;display:grid;place-items:center;background:#edf2e3;border-radius:6px;font-size:27px;flex-shrink:0}.download-row>div{flex:1;min-width:0}.download-row h3{font-size:20px;margin:8px 0}.download-row p{font-size:11px;margin:0}.download-row .button{font-size:12px}.aspiration-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:65px;align-items:start}.aspiration-grid h2{font-size:34px}.aspiration-grid p{font-size:14px}.aspiration-note{background:var(--cream);border-left:3px solid #a4b875;padding:25px;margin:25px 0}.aspiration-note h3{font-size:20px}.aspiration-note p{font-size:12px;margin-bottom:0}.aspiration-form{background:#fafbf7;border:1px solid var(--line);border-radius:9px;padding:30px}.aspiration-form label{display:block;font-size:12px;font-weight:600;margin-bottom:18px}.aspiration-form input,.aspiration-form textarea,.aspiration-form select{width:100%;margin-top:7px;font-size:13px}.aspiration-form label small{font-size:10px;font-weight:400;color:var(--muted)}.public-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.aspiration-form .public-check{display:flex;gap:10px;align-items:start;font-size:11px;font-weight:400}.public-check input{width:16px;height:16px;flex-shrink:0;margin:2px 0 0;accent-color:var(--green)}.hp-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.public-notice{padding:16px;border:1px solid #cae0bf;border-radius:6px;background:#eaf3e4;color:#466e38;font-size:13px;margin-bottom:25px;overflow-wrap:anywhere}.public-notice.error{background:#fbece7;border-color:#edc9ba;color:#934c35}.profile-shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:30px}.profile-shortcuts>a{border:1px solid var(--line);background:var(--cream);padding:18px;border-radius:6px;font-size:12px;font-weight:600}.portal-home-section{padding-bottom:70px}.service-links{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-bottom:45px}.service-links a{display:flex;gap:15px;align-items:center;background:var(--cream);border:1px solid var(--line);border-radius:8px;padding:22px}.service-links a>span{font-size:25px;color:#759452}.service-links strong{font-size:12px}.service-links b{margin-left:auto;font-weight:400;font-size:20px}.portal-home-section>.section-heading{margin-top:35px}.portal-home-section .public-agenda{margin-bottom:15px}
@media(max-width:1000px){.portal-toolbar{flex-wrap:wrap}.legal-grid{grid-template-columns:1fr}.aspiration-grid{gap:35px}.portal-detail-grid{grid-template-columns:minmax(0,1fr) 260px;gap:30px}.calendar-day{padding:7px;min-height:100px}.calendar-event{font-size:9px}.portal-card>img{height:190px}}@media(max-width:800px){.portal-cards{grid-template-columns:repeat(2,1fr)}.portal-filters input,.portal-filters select{font-size:12px}.portal-filters>select{flex:1;min-width:140px}.aspiration-grid,.portal-detail-grid{grid-template-columns:1fr}.aspiration-grid>div{max-width:600px}.aspiration-grid h2{font-size:29px}.aspiration-form{padding:25px}.calendar-bottom{align-items:start;flex-direction:column;gap:17px}.calendar-weekday{padding:10px 4px;font-size:9px}.calendar-day{padding:4px;min-height:95px}.calendar-event{font-size:8px;padding:3px;line-height:1.4}.day-number{font-size:10px;width:21px;height:21px;min-width:21px}.calendar-top h2{font-size:26px}.calendar-controls a{padding:7px 10px;font-size:10px}.calendar-legend{gap:12px;font-size:9px}.portal-toolbar form{flex-wrap:wrap}.portal-toolbar select{padding:10px;font-size:12px}.portal-toolbar .button{font-size:11px}.portal-empty h2{font-size:24px}.profile-shortcuts{grid-template-columns:1fr}.service-links{grid-template-columns:repeat(2,1fr)}.service-links strong{font-size:11px}.service-links a{padding:17px;gap:12px}.portal-home-section{padding-bottom:45px}.org-canvas{padding:20px}.org-level{display:block;width:auto;min-width:0;padding:0}.org-level>li{padding:0 0 20px 20px;min-width:0;text-align:left}.org-level>li:before,.org-level>li:after,.org-level .org-level:before{display:none}.org-level>li:only-child{padding:0 0 20px 20px}.org-node{max-width:none;margin:0 0 18px;min-width:0;display:block;text-align:left;padding:18px}.org-node>img,.org-avatar{float:left;width:42px;height:42px;margin:0 15px 10px 0}.org-node:after{content:'';display:block;clear:both}.org-node h3{font-size:14px}.org-level .org-level{border-left:1px solid #b4c1a5;margin-left:20px}.org-level>li.coordination>.org-node{border-style:dashed}.org-level>li{padding-left:12px}.legal-card{padding:22px}.legal-symbol{min-width:46px;min-height:55px;font-size:23px}.legal-card h3{font-size:21px}.download-row{padding:20px;gap:17px;flex-wrap:wrap}.download-row .button{margin-left:72px}.download-row h3{font-size:18px}.download-row>div{flex-basis:calc(100% - 80px)}}@media(max-width:450px){.portal-cards{grid-template-columns:1fr}.portal-filters{gap:9px}.portal-filters>input{flex-basis:100%;min-width:0}.portal-filters label{min-width:130px}.calendar-top{gap:10px}.calendar-top h2{font-size:22px}.calendar-controls{gap:4px}.calendar-controls a{font-size:9px;padding:6px 8px}.calendar-day{min-height:80px;padding:3px}.calendar-event{font-size:7px;max-height:38px;overflow:hidden}.calendar-weekday{font-size:8px}.calendar-legend{gap:10px}.calendar-bottom h2{font-size:24px}.calendar-bottom .button{font-size:10px;padding:10px 12px}.public-agenda{gap:16px}.public-agenda h3{font-size:19px}.agenda-date{min-width:53px;font-size:22px;padding:10px}.agenda-date small{font-size:8px}.public-form-grid{grid-template-columns:1fr;gap:0}.aspiration-form{padding:20px}.aspiration-grid h2{font-size:27px}.service-links a{padding:14px;gap:8px}.service-links strong{font-size:10px}.service-links a>span{font-size:21px}.service-links b{font-size:15px}.legal-card{gap:15px;padding:20px}.legal-symbol{min-width:38px;font-size:19px}.legal-card h3{font-size:19px}.portal-empty{padding:40px 20px}.portal-empty p{font-size:12px}.org-level .org-level{margin-left:9px}.org-node .eyebrow{font-size:8px}.org-node h3{font-size:12px}.org-node small{font-size:9px}}

/* Flexible portal cards and controls; the calendar keeps its seven-day layout. */
.portal-cards > *, .service-links > *, .aspiration-grid > *, .legal-grid > * { min-width: 0; }
.portal-card { display: flex; flex-direction: column; }
.portal-card > div:not(.portal-placeholder) { flex: 1; }
.portal-card h3, .service-links strong, .public-agenda h3 { overflow-wrap: anywhere; }
.teacher-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
.teacher-card { background: white; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; transition: transform .2s, box-shadow .2s; }
.teacher-card:hover { transform: translateY(-4px); box-shadow: 0 8px 25px #0001; }
.teacher-photo { width: 100%; height: 200px; object-fit: cover; }
.teacher-photo.photo-placeholder { background: linear-gradient(135deg, #e4eddb, #f3f6ec); display: flex; align-items: center; justify-content: center; font-size: 48px; font-weight: 700; color: var(--green); }
.teacher-info { padding: 16px; }
.teacher-info h3 { font-size: 16px; margin: 0 0 6px; color: var(--ink); }
.teacher-position { font-size: 12px; color: var(--green); font-weight: 600; margin: 0 0 4px; }
.teacher-nip { font-size: 11px; color: var(--muted); margin: 0 0 4px; font-family: monospace; }
.teacher-degree { font-size: 11px; color: var(--muted); margin: 0 0 8px; font-style: italic; }
.teacher-badge { display: inline-block; padding: 3px 10px; border-radius: 12px; font-size: 10px; font-weight: 600; margin-bottom: 8px; }
.teacher-badge.badge-pns { background: #d4edda; color: #155724; }
.teacher-badge.badge-pppk { background: #cce5ff; color: #004085; }
.teacher-badge.badge-honorer { background: #fff3cd; color: #856404; }
.teacher-badge.badge-magang-kontrak { background: #f8d7da; color: #721c24; }
.teacher-badge.badge-tidak-tetap { background: #e2e3e5; color: #383d41; }
.teacher-contact { font-size: 11px; color: var(--muted); margin: 0 0 4px; }
.teacher-bio { font-size: 12px; color: var(--ink); line-height: 1.6; margin: 8px 0 0; }
@media (max-width: 600px) { .teacher-grid { grid-template-columns: 1fr; } }
.calendar-top, .calendar-controls, .org-legend { flex-wrap: wrap; }
.public-agenda > div:last-child { min-width: 0; }
@media (max-width: 600px) {
    .portal-toolbar form { width: 100%; }
    .portal-toolbar select { max-width: 100%; }
    .calendar-grid { overflow-x: auto; grid-template-columns: repeat(7, minmax(85px, 1fr)); }
    .calendar-event { font-size: 11px; max-height: none; }
    .calendar-weekday { font-size: 11px; }
    .calendar-day { min-height: 100px; }
    .calendar-controls a { min-height: 44px; display: inline-flex; align-items: center; font-size: 12px; }
    .service-links strong { font-size: 12px; }
    .service-links a { flex-wrap: wrap; }
    .download-row .button { margin-left: 0; width: 100%; }
}