
:root{--ink:#283a5b;--muted:#8b99b0;--blue:#6895eb;--blue-deep:#507fdc;--line:#edf1f7;--bg:#f5f8fd;--shadow:0 9px 25px rgba(144,165,195,.12),0 3px 7px rgba(144,165,195,.06);--clay:inset 0 2px 2px rgba(255,255,255,.95),0 8px 18px rgba(143,165,197,.14),0 2px 5px rgba(143,165,197,.07)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Nunito',ui-rounded,'Segoe UI',sans-serif;font-size:13px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.6}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #aac7ff;outline-offset:3px}
a{color:inherit;text-decoration:none}
h1,h2,h3,p{margin:0}
svg{flex-shrink:0}
.app-shell{min-height:100vh}

/* Brand and sidebar */
.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:250px;background:#fff;border-right:1px solid #edf2f8;padding:27px 18px 16px;display:flex;flex-direction:column;overflow-y:auto}
.sidebar-brand{padding:0 5px;margin-bottom:25px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:10px;white-space:nowrap}
.brand-mark{width:43px;height:43px;border-radius:15px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#92baff,#6596ee);box-shadow:inset 2px 2px 4px #ffffff82,inset -3px -4px 7px #507ac04a,0 5px 10px #a8c3ef8a}
.brand-copy{display:flex;flex-direction:column;line-height:1}
.brand-copy strong{font-size:24px;letter-spacing:-1px;font-weight:900;color:#344d76}
.brand-copy strong span{color:#78a4f2}
.brand-copy small{font-size:8px;letter-spacing:1.7px;font-weight:900;color:#a4b1c4;margin-top:5px}
.school-badge{display:flex;align-items:center;gap:9px;background:#f6f9ff;border:1px solid #eef3fc;border-radius:15px;padding:10px 9px;margin-bottom:12px;box-shadow:inset 1px 2px 3px #fff}
.school-badge-icon{width:35px;height:35px;border-radius:12px;display:grid;place-items:center;background:#e4edff;color:#80a7ed;font-size:24px;text-shadow:0 2px 2px #fff}
.school-badge>div:nth-child(2){min-width:0;flex:1}
.school-badge strong,.school-badge span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.school-badge strong{font-size:11px;font-weight:900;color:#4b5c78}
.school-badge span{font-size:10px;color:#a0adc1;margin-top:2px}
.school-badge span i{color:#f3bd6c;font-style:normal}
.school-badge>svg{color:#aab8cc}
.main-nav{display:flex;flex-direction:column;gap:2px}
.nav-group-label{font-size:9px;font-weight:900;letter-spacing:1.2px;color:#b0bdcf;margin:19px 10px 9px}
.nav-item{width:100%;height:42px;border:0;border-radius:13px;background:transparent;display:flex;align-items:center;gap:12px;padding:0 12px;color:#8898ae;font-size:12.5px;font-weight:800;text-align:left;position:relative;transition:background .2s,color .2s,transform .2s}
.nav-item:hover{color:#628be0;background:#f7faff}
.nav-item.active{color:#5887e5;background:linear-gradient(110deg,#eaf2ff,#f3f7ff);box-shadow:inset 1px 1px 3px #fff,0 3px 7px #e8effb}
.nav-item>span:nth-child(2){flex:1}
.nav-active-dot{width:5px;height:5px;border-radius:50%;background:#77a3ef;box-shadow:0 0 0 4px #dbe9ff}
.nav-count{display:grid;place-items:center;min-width:20px;height:20px;border-radius:7px;background:#ffedda;color:#e6a552;font-size:10px;font-weight:900}
.nav-lock{color:#c6d1df}
.sidebar-bottom{margin-top:auto;padding-top:22px}
.help-card{background:linear-gradient(135deg,#f0efff,#f9f4ff);border:1px solid #f1edff;border-radius:18px;padding:14px 11px;display:flex;gap:10px;position:relative;box-shadow:inset 1px 2px 3px #fff}
.help-bubble{width:34px;height:34px;flex-shrink:0;display:grid;place-items:center;background:#dcd8fa;border-radius:12px;color:#8e84d4;box-shadow:inset 2px 2px 3px #fff9,0 3px 6px #c5bce655}
.help-card strong{font-size:11px;font-weight:900;color:#5b5a84}
.help-card p{font-size:10px;color:#a29dba;margin:3px 0 7px}
.help-card button{padding:0;border:0;background:none;color:#8d87ca;font-weight:900;font-size:10px;display:flex;align-items:center;gap:2px}
.help-star{position:absolute;right:12px;top:10px;color:#c9c0f4;font-size:13px}
.sidebar-profile{display:flex;align-items:center;border-top:1px solid #f0f3f8;margin-top:16px;padding-top:15px;gap:5px}
.profile-main{border:0;background:none;display:flex;align-items:center;text-align:left;min-width:0;gap:9px;flex:1;padding:0}
.profile-main>span:nth-child(2){min-width:0;flex:1}
.profile-main strong,.profile-main small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-main strong{font-size:11px;font-weight:900}
.profile-main small{font-size:10px;color:#a1adc0;margin-top:2px}
.profile-main>svg{color:#a7b4c6}
.logout-button,.mobile-close{border:0;background:transparent;color:#a6b2c2;padding:5px;display:grid;place-items:center}
.logout-button:hover{color:#e6929b}
.mobile-close{display:none}
.avatar{flex:none;display:inline-grid;place-items:center;font-weight:900;letter-spacing:-.3px;color:#8075b6;background:#e9e4fa;border:2px solid #fff;box-shadow:0 2px 7px #a2b3cc55}
.avatar-sm{width:34px;height:34px;border-radius:12px;font-size:10px}
.avatar-md{width:39px;height:39px;border-radius:14px;font-size:11px}
.avatar-lg{width:52px;height:52px;border-radius:18px;font-size:15px}
.avatar-blue{background:#dceafe;color:#719bd8}.avatar-peach{background:#ffeadf;color:#dc967b}.avatar-mint{background:#def4e9;color:#74bca0}.avatar-pink{background:#ffe4ed;color:#d58aa7}.avatar-yellow{background:#fff1cb;color:#cda962}.avatar-lavender{background:#eae3fb;color:#9a84d4}

/* Main header */
.main-content{margin-left:250px;padding:29px 36px 18px;max-width:1800px;min-height:100vh}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px;min-height:67px}
.topbar-left{display:flex;align-items:center;gap:13px;min-width:0}
.breadcrumb{display:flex;align-items:center;gap:5px;color:#b0bfd2;font-size:9px;letter-spacing:1.05px;font-weight:900;margin-bottom:5px}
.breadcrumb span{color:#82a2d8}
.topbar h1{font-size:25px;line-height:1.1;letter-spacing:-.6px;font-weight:900;color:#2d405f}
.topbar h1 span{font-size:12px;color:#efbc72;vertical-align:middle;margin-left:3px}
.topbar p{font-size:11.5px;font-weight:600;color:#99a8bb;margin-top:5px}
.topbar-actions{display:flex;align-items:center;gap:12px}
.header-date{height:40px;padding:0 14px;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #eef2f8;border-radius:13px;box-shadow:var(--shadow);color:#8496b1;font-size:11px;font-weight:800;white-space:nowrap}
.header-date svg{color:#88a8e4}
.header-icon,.icon-button{width:40px;height:40px;display:grid;place-items:center;border:1px solid #eef2f8;background:#fff;border-radius:13px;box-shadow:var(--shadow);color:#8ea0b8;position:relative}
.header-icon i{position:absolute;width:7px;height:7px;background:#ff9fae;border:1.5px solid white;border-radius:50%;right:10px;top:9px}
.header-profile{display:flex;align-items:center;gap:9px;padding:0 0 0 6px;border:0;background:transparent;text-align:left}
.header-profile>span:nth-child(2){min-width:0}
.header-profile strong,.header-profile small{display:block;white-space:nowrap}
.header-profile strong{font-size:11px;font-weight:900}.header-profile small{font-size:10px;color:#a1afc1;margin-top:2px}.header-profile>svg{color:#a9b6c6}
.notification-wrap{position:relative}.notification-popover{position:absolute;right:0;top:48px;width:280px;background:#fff;border:1px solid #eef2f8;border-radius:18px;box-shadow:0 16px 40px #a5b5cd45;padding:16px;z-index:25}.notification-popover>div{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.notification-popover>div strong{font-size:14px}.notification-popover>div span{font-size:10px;color:#8ea5c8}.notification-popover>button{display:flex;align-items:center;text-align:left;width:100%;gap:9px;border:0;border-radius:12px;padding:10px;background:#f5f9ff;color:var(--ink)}.notification-popover>button>span{display:grid;place-items:center;width:33px;height:33px;border-radius:11px;background:#e2eeff;color:#83a6e7}.notification-popover>button p{flex:1}.notification-popover>button p strong,.notification-popover>button p small{display:block;font-size:11px}.notification-popover>button p small{color:#9caac0;margin-top:3px}.notification-empty{font-size:11px;line-height:1.6;color:#95a3b7}
.mobile-menu{display:none}

/* Dashboard */
.hero-grid{display:grid;grid-template-columns:minmax(0,2.05fr) minmax(290px,1fr);gap:18px}
.welcome-card{min-height:226px;position:relative;overflow:hidden;border-radius:23px;background:#d9ecfb;box-shadow:inset 2px 2px 4px #ffffffb5,0 8px 18px #b5cde355}
.welcome-art{position:absolute;inset:0 0 0 auto;width:74%;background-image:linear-gradient(90deg,#d9ecfb 0%,#d9ecfb00 36%),url('/images/teacher-clay.png');background-size:100% 100%,auto 100%;background-position:center,right center;background-repeat:no-repeat;pointer-events:none}
.welcome-copy{position:relative;z-index:1;padding:26px 29px;max-width:58%}
.welcome-tag{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;color:#7196d6;background:#ffffffa8;border-radius:9px;font-size:9px;line-height:1;font-weight:900;letter-spacing:.65px;box-shadow:inset 1px 1px 2px #fff}
.welcome-tag svg{color:#efc377}
.welcome-copy h2{font-size:27px;font-weight:900;letter-spacing:-.75px;line-height:1.15;margin-top:14px;color:#324c72;white-space:nowrap}
.welcome-copy h2 span{font-size:24px}
.welcome-copy p{max-width:275px;font-size:12px;line-height:1.6;color:#748fae;font-weight:700;margin-top:8px}
.welcome-link{display:inline-flex;align-items:center;gap:9px;border:0;background:#fff;color:#7098df;padding:9px 12px;border-radius:11px;font-size:10.5px;font-weight:900;margin-top:15px;box-shadow:0 4px 10px #b8d0e97a,inset 0 2px 2px #fff}
.welcome-link:hover{transform:translateY(-1px)}
.hero-sparkle{position:absolute;color:#fff9;font-size:20px}.hero-sparkle-one{right:42%;top:21px}
.surface{background:#fff;border:1px solid #f1f4f9;border-radius:21px;box-shadow:var(--clay)}
.today-card{padding:18px 19px 14px;min-width:0}
.today-heading{display:flex;align-items:center;gap:10px}
.today-icon,.calendar-heading-icon{width:37px;height:37px;display:grid;place-items:center;border-radius:13px;background:#e9f1ff;color:#82a8e9;box-shadow:inset 2px 2px 4px #fff,0 3px 6px #c7d7ee62}
.today-heading>div{min-width:0;flex:1}.today-heading h2{font-size:13px;font-weight:900}.today-heading p{font-size:10px;color:#a0afc1;font-weight:700;margin-top:3px}.more-icon{color:#bac6d5}
.today-times{display:flex;align-items:center;gap:14px;margin:17px 0 14px}
.today-times>div:not(.time-divider){display:flex;flex-direction:column;gap:4px}.today-times>div span{font-size:10px;color:#a1aec0;font-weight:700}.today-times strong{font-size:18px;font-weight:900;letter-spacing:-.4px;color:#536786}.time-divider{width:1px;height:32px;background:#edf1f6}.today-mini-status{margin-left:auto;display:flex;align-items:center;gap:4px;padding:6px 7px;border-radius:8px;background:#fff6e5;color:#d9a64f;font-size:9px;font-weight:900;white-space:nowrap}.today-mini-status.done{color:#73bc9b;background:#eaf8f1}
.primary-button{border:0;border-radius:12px;background:linear-gradient(145deg,#86aff8,#6695ed);color:white;min-height:42px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:12px;font-weight:900;box-shadow:inset 1px 2px 3px #ffffff70,inset -2px -3px 4px #4a77cd38,0 5px 10px #9ab9ec78;transition:transform .18s,box-shadow .18s}
.primary-button:not(:disabled):hover{transform:translateY(-1px);box-shadow:inset 1px 2px 3px #ffffff80,0 7px 13px #90b2e885}
.today-button{width:100%;height:40px;min-height:40px}.today-button svg:last-child{margin-left:auto}
.location-link{display:flex;align-items:center;justify-content:center;gap:4px;color:#a7b5c8;font-size:10px;font-weight:800;margin:10px auto 0;border:0;background:transparent}.location-link svg{color:#98c8b0}.location-link span{color:#81a4df}.location-link.geo-outside svg{color:#eba187}
.section-heading{display:flex;align-items:end;justify-content:space-between}.stats-heading{margin:25px 2px 13px}.eyebrow{display:block;color:#a9b8cc;letter-spacing:1.2px;font-size:9px;font-weight:900;margin-bottom:5px}.section-heading h2{font-size:17px;letter-spacing:-.2px;font-weight:900}.section-heading h2 span{font-size:13px;margin-left:2px}
.period-chip{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #edf2f8;border-radius:10px;background:#fff;color:#94a4b9;font-size:10px;font-weight:800;box-shadow:0 3px 8px #dae3ef50}.period-chip svg:first-child{color:#93afe0}.period-chip svg:last-child{transform:rotate(90deg);color:#bdc9d6}
.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.stat-card{min-height:115px;position:relative;display:flex;align-items:center;gap:15px;padding:17px 18px;background:#fff;border:1px solid #f2f5fa;border-radius:20px;box-shadow:var(--clay);overflow:hidden}
.stat-card:after{content:"";position:absolute;right:-25px;bottom:-47px;width:95px;height:95px;border-radius:50%;opacity:.4}.stat-mint:after{background:#ecfbf3}.stat-peach:after{background:#fff7e8}.stat-lavender:after{background:#f4efff}
.stat-icon{width:54px;height:54px;flex-shrink:0;border-radius:18px;display:grid;place-items:center;box-shadow:inset 2px 2px 4px #ffffffd9,inset -3px -4px 6px #00000009,0 5px 9px #a8bcce35}.stat-icon-mint{color:#7fcba6;background:#dcf7e8}.stat-icon-peach{color:#e6b477;background:#fff0db}.stat-icon-lavender{color:#ae9ee1;background:#eee8ff}
.stat-copy{position:relative;z-index:1;min-width:0}.stat-copy p{color:#8797ae;font-size:11px;font-weight:800;white-space:nowrap}.stat-copy>div{display:flex;align-items:baseline;gap:5px;margin:2px 0}.stat-copy strong{font-size:24px;line-height:1.2;letter-spacing:-.7px;font-weight:900}.stat-copy>div span{font-size:10px;color:#a9b5c5;font-weight:800}.stat-copy small{font-size:9.5px;color:#a8b5c5;font-weight:700;white-space:nowrap}.stat-copy small span{color:#a1cdb8}.stat-peach .stat-copy small span{color:#e9c18f}.stat-lavender .stat-copy small span{color:#b9abe9}.stat-arrow{position:absolute;right:16px;top:17px;color:#c8d4e2}
.bottom-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,1fr);gap:18px;margin-top:20px}.recent-card,.calendar-card{padding:20px 21px 14px;min-width:0}.section-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.section-card-heading h2{font-size:15px;letter-spacing:-.2px;font-weight:900}.section-card-heading p{font-size:10.5px;color:#a1aec0;font-weight:700;margin-top:4px}.tiny-sparkle{color:#f0c16e;font-size:12px;margin-left:3px}.text-link{display:flex;align-items:center;gap:5px;padding:4px 0;border:0;background:none;color:#82a5e6;font-size:10.5px;font-weight:900;white-space:nowrap}.text-link:hover{color:#567fd1}
.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{color:#b1bdcc;font-size:9px;font-weight:900;letter-spacing:.3px;white-space:nowrap}td{color:#8b9bb0;font-size:11px;font-weight:700}th,td{padding:11px 9px;border-bottom:1px solid #f2f5f9}th:first-child,td:first-child{padding-left:0}th:last-child,td:last-child{padding-right:0}.table-strong{color:#526581;font-weight:900}.recent-table{margin-top:11px}.recent-table th{padding-top:10px;padding-bottom:8px}.recent-table td{padding-top:9px;padding-bottom:9px}.recent-table tbody tr:last-child td{border-bottom:0}.table-empty{text-align:center;padding:25px!important;color:#b5c0cf}
.status-pill{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:8px;font-size:9px;line-height:1;font-weight:900;white-space:nowrap}.status-green{color:#79b99c;background:#eaf8f0}.status-orange{color:#dfa674;background:#fff1e3}.status-purple{color:#aa98d9;background:#f1edfc}.status-yellow{color:#d2a452;background:#fff7e4}.status-red{color:#dd8c96;background:#fff0f1}
.recent-footer{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding:10px 11px;border-radius:11px;background:#f7faff;color:#98a9c0;font-size:10px;font-weight:800}.recent-footer span,.recent-footer button{display:flex;align-items:center;gap:5px}.recent-footer span svg{color:#ad9fe3}.recent-footer button{color:#92ade0;background:none;border:0;font-weight:900;font-size:10px}
.calendar-card{padding-left:20px;padding-right:20px}.calendar-heading-icon{width:34px;height:34px;border-radius:11px}.calendar-controls{display:flex;align-items:center;justify-content:center;gap:16px;margin:13px 0 10px}.calendar-controls strong{font-size:11px;font-weight:900;min-width:95px;text-align:center}.calendar-controls button{display:grid;place-items:center;width:23px;height:23px;border-radius:8px;border:1px solid #edf2f9;background:#fbfcff;color:#a4b4ca}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.calendar-weekdays span{font-size:9px;color:#b3c0d0;font-weight:900;padding:2px 0 6px}.calendar-days button{position:relative;height:26px;width:29px;justify-self:center;display:grid;place-items:center;border:0;background:transparent;border-radius:9px;color:#8698b0;font-size:10px;font-weight:800}.calendar-days button:hover{background:#f2f6fd}.calendar-days button.is-today{box-shadow:inset 0 0 0 1.5px #9cbcf3;color:#6793df}.calendar-days button.is-selected{background:#e8f1ff;color:#6895e4}.calendar-dot{position:absolute;bottom:2px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%}.dot-green,.legend-dot.green{background:#8ed2ae}.dot-orange,.legend-dot.orange{background:#f0ba83}.dot-purple,.legend-dot.purple{background:#bba9e9}.dot-yellow{background:#efcf78}.calendar-legend{display:flex;justify-content:center;align-items:center;gap:10px;min-height:29px;border-top:1px solid #f4f6fa;margin-top:7px;padding-top:9px;color:#9daabd;font-size:8.5px;font-weight:800;white-space:nowrap}.calendar-legend span{display:flex;align-items:center;gap:4px}.legend-dot{display:inline-block;width:6px;height:6px;border-radius:50%}.selected-date-label strong{color:#7188ac}
.dashboard-footer{display:flex;justify-content:space-between;padding:18px 2px 0;color:#b6c1d0;font-size:9.5px;font-weight:700}.dashboard-footer span span{color:#e9a8af}

/* General pages */
.subpage-stack{display:flex;flex-direction:column;gap:20px;padding-bottom:30px}.page-card-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.page-card-heading h2{font-size:22px;letter-spacing:-.5px;font-weight:900;margin-top:8px}.page-card-heading p{font-size:12px;color:#9daabd;font-weight:700;margin-top:5px}.soft-overline{display:inline-flex;align-items:center;gap:6px;color:#89a7dd;font-size:9px;font-weight:900;letter-spacing:1px}
.attendance-page-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:20px}.attendance-main-card{padding:27px 30px}.attendance-main-card h2{font-size:24px;font-weight:900;margin:12px 0 5px}.attendance-main-card h2 span{font-size:23px}.attendance-main-card>p{font-size:12px;color:#96a5ba;font-weight:700}.selfie-illustration{height:210px;margin:22px 0;border-radius:21px;background:linear-gradient(135deg,#eaf4ff,#f1edff);display:grid;place-items:center;position:relative;overflow:hidden;box-shadow:inset 2px 2px 6px #c3d7ef55,inset -2px -2px 5px #fff}.selfie-illustration:before,.selfie-illustration:after{content:"";position:absolute;width:155px;height:155px;border:1px dashed #c7d8f4;border-radius:50%}.selfie-illustration:after{width:190px;height:190px;opacity:.6}.selfie-circle{display:grid;place-items:center;width:112px;height:112px;border-radius:40px;color:#83a8eb;background:linear-gradient(145deg,#f5f9ff,#dceaff);box-shadow:inset 3px 3px 6px #fff,inset -4px -4px 8px #b8ceeb55,0 10px 18px #aebfdb55}.selfie-deco{position:absolute;color:#e9bf7d;font-size:25px}.deco-one{left:29%;top:30px}.deco-two{right:28%;bottom:30px;color:#b7aae5}.selfie-time-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-bottom:23px}.selfie-time-row>div{display:flex;flex-direction:column;gap:7px}.selfie-time-row>div>span:first-child{font-size:10px;color:#a0aec0;font-weight:800}.selfie-time-row strong{font-size:19px;font-weight:900}.selfie-time-row .status-pill{align-self:flex-start}.muted-value{color:#aab7c8!important;font-size:11px!important;font-weight:800}.attendance-main-card>.primary-button{width:100%}.attendance-side{display:flex;flex-direction:column;gap:18px}.location-card{padding:23px}.location-illustration{height:160px;border-radius:16px;margin:19px 0;background-color:#eaf6f1;background-image:linear-gradient(25deg,transparent 46%,#fff9 47%,#fff9 52%,transparent 53%),linear-gradient(115deg,transparent 39%,#fff9 40%,#fff9 45%,transparent 46%),linear-gradient(90deg,#d9eee4 1px,transparent 1px),linear-gradient(#d9eee4 1px,transparent 1px);background-size:auto,auto,36px 36px,36px 36px;display:grid;place-items:center;overflow:hidden}.location-illustration>span{width:62px;height:62px;border-radius:21px;display:grid;place-items:center;color:#8ccba9;background:#fff;box-shadow:0 8px 15px #92b8a75c,inset 1px 2px 3px #fff}.location-result{display:flex;align-items:flex-start;gap:9px;margin-bottom:15px}.location-result strong{font-size:12px;font-weight:900}.location-result p{color:#a1afc1;font-size:10.5px;margin-top:3px}.geo-dot{width:9px;height:9px;flex:none;border-radius:50%;background:#e7c87e;box-shadow:0 0 0 4px #fff7e1;margin-top:4px}.geo-inside .geo-dot,.geo-box-inside .geo-dot{background:#82cba5;box-shadow:0 0 0 4px #e6f8ed}.geo-outside .geo-dot,.geo-box-outside .geo-dot,.geo-box-error .geo-dot{background:#e99e99;box-shadow:0 0 0 4px #ffeded}.location-footnote{font-size:10px;color:#a7b3c3;line-height:1.5;margin-top:12px}.leave-shortcut{display:flex;align-items:center;gap:12px;border-radius:19px;padding:18px;background:#f4efff;box-shadow:inset 1px 2px 4px #fff,0 5px 13px #c7c0e230}.leave-shortcut>span{display:grid;place-items:center;width:43px;height:43px;border-radius:14px;background:#e7defa;color:#aa97dd;box-shadow:inset 1px 2px 3px #fff}.leave-shortcut>div{flex:1}.leave-shortcut strong{font-size:12px;font-weight:900;color:#716b96}.leave-shortcut p{font-size:10px;color:#ada5c5;margin-top:4px}.leave-shortcut>button{display:grid;place-items:center;width:33px;height:33px;border:0;border-radius:11px;background:#fff;color:#b0a0dd}.quick-history{padding:22px 24px}.quick-history table{margin-top:12px}
.history-card{padding:25px 26px}.export-buttons{display:flex;gap:8px;flex-wrap:wrap}.outline-button,.secondary-button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 13px;border:1px solid #e5edf8;border-radius:11px;background:#fff;color:#8295ae;font-size:11px;font-weight:900;box-shadow:0 3px 7px #dce6f450,inset 1px 1px 2px #fff}.outline-button:hover,.secondary-button:hover{color:#6d95df;background:#f8fbff}.full-width{width:100%}.filter-bar{display:flex;align-items:center;gap:10px;padding:13px;background:#f8faff;border:1px solid #f1f5fb;border-radius:14px;margin-bottom:13px}.search-field{display:flex;align-items:center;gap:8px;flex:1;min-width:150px;color:#acb9c9}.search-field input{width:100%;border:0;outline:0!important;background:transparent;color:#536781;font-size:11px;font-weight:700}.search-field input::placeholder{color:#b4c0cf}.filter-bar select,.date-filter{border:1px solid #eaf0f8;background:#fff;border-radius:9px;color:#91a1b5;font-size:10px;font-weight:800;padding:9px}.date-filter{display:flex;align-items:center;gap:5px;white-space:nowrap}.date-filter input{border:0;background:transparent;color:#8fa1b8;outline:0;font-size:10px;min-width:95px}.clear-filter{border:0;background:transparent;color:#82a3df;font-weight:900;font-size:10px}.data-table th{padding-top:13px;padding-bottom:13px}.data-table td{padding-top:13px;padding-bottom:13px}.person-cell{display:flex;align-items:center;gap:9px;white-space:nowrap}.location-cell{display:flex;align-items:center;gap:4px;white-space:nowrap;font-size:10px}.location-cell svg{color:#a1c9b4}.table-summary{display:flex;justify-content:space-between;padding-top:15px;color:#adbacb;font-size:10px;font-weight:700}.table-summary strong{color:#8195b1}.table-summary span{color:#b7c3d2}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px 15px;color:#a0aec0}.empty-state>span{display:grid;place-items:center;width:43px;height:43px;border-radius:15px;background:#eef4ff;color:#a0b9e7;margin-bottom:9px}.empty-state strong{font-size:12px;color:#788ba6}.empty-state p{font-size:10.5px;margin-top:4px}
.leave-banner{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;min-height:180px;padding:26px 30px;border-radius:22px;background:linear-gradient(110deg,#f8edf5,#f3ecff);box-shadow:inset 2px 2px 4px #fff,0 8px 16px #c9c1d92b}.leave-banner h2{font-size:24px;font-weight:900;letter-spacing:-.5px;margin-top:11px}.leave-banner h2 span{font-size:22px}.leave-banner p{font-size:12px;color:#a699ad;font-weight:700;margin:6px 0 15px}.leave-banner-art{display:grid;place-items:center;width:125px;height:125px;border-radius:42px;color:#c5a5d8;background:#f4e6fa;box-shadow:inset 3px 3px 7px #fff,inset -4px -4px 8px #d9c6e680,0 8px 18px #c6b5d450;transform:rotate(8deg);margin-right:8%}.leave-banner-art span{position:absolute;color:#ebbf92;font-size:23px;right:-20px;top:0}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.mini-stats>div{display:flex;align-items:center;gap:13px;padding:16px 19px;border:1px solid #f2f5fa;border-radius:19px;background:#fff;box-shadow:var(--clay)}.mini-stats p{color:#97a6ba;font-size:11px;font-weight:800}.mini-stats strong{display:block;color:var(--ink);font-size:21px;font-weight:900;margin-top:3px}.mini-icon{display:grid;place-items:center;width:47px;height:47px;border-radius:16px;box-shadow:inset 2px 2px 3px #fffc,0 3px 6px #becbd755}.mini-icon.lavender{background:#eee8ff;color:#ad9ddd}.mini-icon.yellow{background:#fff1d9;color:#dfba78}.mini-icon.mint{background:#def6e8;color:#83cba5}.mini-icon.blue{background:#e4efff;color:#8aaee9}.type-icon{display:inline-grid;place-items:center;width:27px;height:27px;border-radius:9px;margin-right:8px;background:#f2ecff;color:#af9cdd;vertical-align:middle}.reason-cell{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-link{display:inline-flex;align-items:center;gap:5px;color:#87a4dc;font-size:10px;font-weight:900;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-link:hover{color:#5f8bda}
.approval-intro{display:flex;align-items:center;gap:16px;padding:23px 26px;border-radius:20px;background:linear-gradient(110deg,#eaf5ff,#eef0ff);box-shadow:inset 2px 2px 4px #fff,0 6px 15px #becfe33b}.approval-intro>span{width:52px;height:52px;display:grid;place-items:center;border-radius:17px;background:#fff;color:#91b2e8;box-shadow:0 5px 10px #b8cbe966}.approval-intro h2{font-size:17px;font-weight:900}.approval-intro p{color:#96a8bf;font-size:11px;font-weight:700;margin-top:5px}.approval-intro p strong{color:#7198dd}.approval-section{padding:23px 25px}.count-badge{display:inline-grid;place-items:center;min-width:21px;height:21px;border-radius:7px;background:#fdf0dd;color:#d8a86a;font-size:10px;margin-left:3px}.approval-list{margin-top:14px}.approval-item{display:grid;grid-template-columns:1.05fr 1.25fr auto;align-items:center;gap:16px;padding:15px 0;border-bottom:1px solid #f2f5f9}.approval-item:last-child{border-bottom:0}.approval-person{display:flex;align-items:center;gap:10px;min-width:0}.approval-person strong{display:block;color:#5b6d87;font-size:11px;font-weight:900}.approval-person p{font-size:10px;color:#adbacb;margin-top:3px}.approval-person p b{color:#a896d2}.approval-description>span{display:flex;align-items:center;gap:5px;font-size:10px;color:#99a9bc;font-weight:800}.approval-description p{color:#8394aa;font-size:11px;font-weight:700;line-height:1.5;margin-top:6px}.approval-description .file-link{margin-top:5px}.photo-link{border:0;background:none;padding:0}.approval-actions{display:flex;gap:7px}.approve-button,.reject-button,.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:0;border-radius:10px;padding:9px 11px;font-size:10px;font-weight:900}.approve-button{background:#e5f7ee;color:#7cbd9d}.reject-button{background:#fff0f1;color:#dc969e}.danger-button{background:#e998a2;color:#fff;box-shadow:inset 1px 2px 3px #fff7,0 4px 9px #e9a1aa70}.review-photo{display:block;width:100%;max-height:65vh;object-fit:contain;border-radius:16px;background:#f0f4fa}
.users-stats{margin-bottom:0}.role-pill{display:inline-flex;padding:5px 9px;border-radius:8px;font-size:10px;font-weight:900;color:#84a6e1;background:#edf4ff}.role-staf{color:#ad98d3;background:#f3eefe}.role-admin{color:#dbb477;background:#fff5e4}.row-actions{display:flex;gap:6px}.row-actions button{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:9px;background:#f0f5ff;color:#91ade0}.row-actions .delete-action{background:#fff1f2;color:#dc9ca4}.delete-confirm{display:flex;align-items:center;gap:14px;margin:5px 0 23px}.delete-confirm>span{width:49px;height:49px;flex:none;display:grid;place-items:center;border-radius:16px;background:#fff0f2;color:#e497a3}.delete-confirm p{line-height:1.6;color:#95a4b7;font-size:12px}.delete-confirm strong{color:#657b9a}.confirm-actions{display:flex;justify-content:flex-end;gap:9px}

/* Modal and forms */
.modal-backdrop{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:20px;background:#33455b75;}.modal-card{width:min(100%,480px);max-height:min(90vh,900px);overflow-y:auto;background:#fff;border:1px solid #ffffffa0;border-radius:24px;padding:25px;box-shadow:inset 0 2px 4px #fff,0 25px 70px #3d527b42}.modal-wide{width:min(100%,760px)}.modal-heading{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:22px}.modal-heading h2{font-size:20px;font-weight:900;letter-spacing:-.4px}.modal-heading p{font-size:11.5px;color:#a0afc1;font-weight:700;margin-top:5px}.close-button{box-shadow:none;width:33px;height:33px;border-radius:10px;background:#f7f9fc;color:#9dacbe;flex:none}.stack-form{display:flex;flex-direction:column;gap:15px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field>span,.form-label{font-size:11px;font-weight:900;color:#6e819c}.field input,.field textarea,.field select{width:100%;border:1px solid #e8eef6;border-radius:11px;background:#fafcff;padding:11px 12px;color:#536985;font-size:12px;font-weight:700;outline:none;box-shadow:inset 1px 2px 3px #e7edf64a}.field textarea{resize:vertical;min-height:80px}.field input::placeholder,.field textarea::placeholder{color:#bdc8d5}.field input:focus,.field textarea:focus,.field select:focus{border-color:#adcbfa;background:#fff}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-error{border-radius:10px;background:#fff0f1;color:#c9717d;padding:10px 12px;font-size:11px;font-weight:800;line-height:1.5}.choice-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice-row button{display:flex;align-items:center;justify-content:center;gap:7px;padding:11px;border:1px solid #ebf0f7;border-radius:11px;background:#fafcff;color:#9aaabd;font-size:12px;font-weight:900}.choice-row button.active{background:#eaf2ff;border-color:#d7e7ff;color:#77a0e8;box-shadow:inset 1px 1px 3px #fff}.upload-box{display:flex;align-items:center;gap:10px;border:1.5px dashed #d9e5f4;border-radius:12px;background:#f9fbff;padding:13px;color:#9cb5df;cursor:pointer}.upload-box>span{flex:1;min-width:0}.upload-box strong,.upload-box small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-box strong{font-size:11px;color:#8499b4}.upload-box small{font-size:10px;color:#b4c0d0;margin-top:3px}.upload-box>button{border:0;background:none;color:#a7b5c7}.info-note{display:flex;gap:8px;align-items:flex-start;padding:11px;border-radius:11px;background:#f4f7ff;color:#a1abd0}.info-note p{font-size:10.5px;font-weight:700;line-height:1.5}.info-note svg{color:#b2a5e0}
.camera-layout{display:grid;grid-template-columns:1.12fr .88fr;gap:19px}.camera-preview{height:265px;border-radius:17px;overflow:hidden;position:relative;background:linear-gradient(145deg,#edf5ff,#eeeafd);box-shadow:inset 2px 2px 6px #c3d3ec80,inset -2px -2px 5px #fff}.camera-preview.has-image{background:#293a50}.camera-preview img,.camera-preview video{width:100%;height:100%;object-fit:cover}.camera-preview video{transform:scaleX(-1)}.camera-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}.camera-placeholder>span{width:65px;height:65px;display:grid;place-items:center;border-radius:21px;color:#91b0e5;background:#f4f8ff;box-shadow:inset 2px 2px 4px #fff,0 5px 10px #bbcae566}.camera-placeholder strong{font-size:13px;font-weight:900;margin-top:14px;color:#748bad}.camera-placeholder p{font-size:10.5px;color:#a4b2c8;margin-top:5px}.camera-live{position:absolute;top:12px;left:12px;background:#ffffffdd;color:#7694bd;padding:6px 8px;border-radius:7px;font-size:9px;font-weight:900}.camera-live i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#85cfa8;margin-right:3px}.camera-actions{display:flex;gap:8px;margin-top:10px}.camera-actions button{flex:1;white-space:nowrap}.detail-title{display:flex;align-items:center;gap:10px}.detail-title>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#eaf4ff;color:#8eafe6}.detail-title strong{font-size:12px;font-weight:900}.detail-title p{font-size:10px;color:#a6b4c5;margin-top:3px}.geo-box{display:flex;gap:10px;padding:14px 12px;margin:15px 0 10px;border-radius:12px;background:#fff9ec}.geo-box-inside{background:#effaf3}.geo-box-outside,.geo-box-error{background:#fff1f1}.geo-box strong{font-size:11px;font-weight:900;color:#8c97a6}.geo-box p{font-size:10px;color:#a9b3c0;line-height:1.5;margin-top:4px}.camera-details>.info-note{margin-top:13px}.camera-details>.form-error{margin-top:10px}.camera-submit{margin-top:13px}.help-content{display:flex;flex-direction:column;gap:14px;margin-bottom:22px}.help-content>div{display:flex;gap:11px}.help-content>div>span{display:grid;place-items:center;width:31px;height:31px;flex:none;border-radius:10px;background:#eef4ff;color:#93afe1;font-size:10px;font-weight:900}.help-content p{font-size:11px;color:#9aaabd;line-height:1.55}.help-content p strong{display:block;font-size:12px;color:#7185a1;margin-bottom:2px}

/* Login */
.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.login-visual{position:relative;overflow:hidden;background:#dcedfa;padding:38px 48px;min-height:100vh;display:flex;flex-direction:column}.login-visual>.brand{z-index:1}.login-visual-copy{z-index:1;margin-top:11vh}.login-visual-copy h1{font-size:clamp(31px,3.4vw,48px);font-weight:900;letter-spacing:-1.6px;line-height:1.16;color:#405a7c;margin-top:18px}.login-visual-copy h1 span{color:#85aaf0}.login-visual-copy p{max-width:390px;font-size:14px;line-height:1.7;color:#859cb6;font-weight:700;margin-top:13px}.login-art{position:absolute;inset:auto 0 0 0;height:51%;background:url('/images/teacher-clay.png') center 45% / cover no-repeat;mix-blend-mode:multiply}.login-visual-footer{z-index:1;margin-top:auto;color:#93a9be;font-size:11px;font-weight:800}.login-main{display:flex;align-items:center;justify-content:center;padding:45px}.login-box{width:min(100%,410px)}.login-title>span{font-size:10px;font-weight:900;letter-spacing:1px;color:#9bb4e0}.login-title h2{font-size:29px;font-weight:900;letter-spacing:-.7px;margin-top:10px}.login-title p{font-size:12px;color:#a4b1c1;font-weight:700;margin-top:6px}.login-form{display:flex;flex-direction:column;gap:15px}.login-title+.login-form{margin-top:28px}.role-switcher{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:-6px}.role-switcher button{display:flex;align-items:center;flex-direction:column;gap:3px;padding:11px 6px;border:1px solid #edf1f8;border-radius:13px;background:#fbfcfe;color:#aab8c9}.role-switcher button>span{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#f0f4fa;color:#a8b9cc;margin-bottom:3px}.role-switcher button strong{font-size:11px;font-weight:900}.role-switcher button small{font-size:9px;font-weight:700}.role-switcher button.selected{border-color:#cfe2ff;background:#f0f6ff;color:#7099e1;box-shadow:inset 1px 2px 3px #fff,0 4px 8px #dce9f866}.role-switcher button.selected>span{background:#dceaff;color:#82a7e8;box-shadow:inset 1px 2px 3px #fff}.password-wrap{position:relative}.password-wrap input{padding-right:42px}.password-wrap button{position:absolute;right:11px;top:50%;transform:translateY(-50%);border:0;background:none;color:#afbdcd;display:grid;place-items:center}.login-submit{margin-top:2px}.demo-note{display:flex;align-items:flex-start;gap:6px;color:#9eabc0;font-size:10px;line-height:1.6}.demo-note svg{color:#c4afe8}.demo-note strong{color:#8098c1}.login-copyright{text-align:center;font-size:10px;color:#b7c2d0;font-weight:700;margin-top:38px}.mobile-login-brand{display:none}
.loading-screen{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:25px}.loading-screen>span{display:flex;align-items:center;gap:8px;color:#9bacc1;font-size:12px;font-weight:800}.load-error{text-align:center;color:#91a1b7}.load-error strong{font-size:15px;color:#647a97}.load-error p{margin:8px 0 15px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.toast{position:fixed;z-index:100;right:25px;bottom:24px;display:flex;align-items:center;gap:9px;max-width:380px;padding:13px 15px;border:1px solid #e5f3eb;background:#fff;border-radius:14px;box-shadow:0 12px 30px #7188a445;color:#73b594;font-size:11px;font-weight:900}.toast-error{color:#d28691;border-color:#f8e8ea}.toast span{flex:1}.toast button{border:0;background:none;color:#afbdcd;display:grid;place-items:center}[hidden]{display:none!important}.sidebar-backdrop{display:none!important;pointer-events:none}

@media(max-width:1250px){.sidebar{width:225px;padding-left:15px;padding-right:15px}.main-content{margin-left:225px;padding-left:27px;padding-right:27px}.hero-grid{grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr)}.welcome-copy{padding-left:24px}.welcome-copy h2{font-size:24px}.stat-card{gap:11px;padding:15px}.stat-icon{width:49px;height:49px}.stat-copy p{font-size:10px}.header-date{font-size:10px}.approval-item{grid-template-columns:1fr 1fr auto}}
@media(max-width:1020px){.sidebar{width:250px;transform:translateX(-105%);transition:transform .25s ease;box-shadow:10px 0 35px #5e739529}.sidebar.sidebar-open{transform:none}.sidebar-backdrop.is-open{display:block!important;pointer-events:auto;position:fixed;inset:0;z-index:29;border:0;background:#354a6480;}.main-content{margin-left:0;padding:26px 28px}.mobile-menu,.mobile-close{display:grid}.topbar{margin-bottom:21px}.header-date{display:none}}
@media(max-width:720px){.main-content{padding:22px 18px 28px}.topbar-actions{gap:8px}.topbar h1{font-size:22px}.topbar p{font-size:10.5px;max-width:280px}.header-profile>span:nth-child(2),.header-profile>svg{display:none}.header-profile{padding-left:0}.hero-grid{grid-template-columns:1fr}.welcome-card{min-height:220px}.welcome-copy{max-width:62%}.today-card{padding:18px}.stats-grid{gap:10px}.stat-card{padding:12px;min-height:100px;gap:8px}.stat-icon{width:40px;height:40px;border-radius:14px}.stat-icon svg{width:21px}.stat-copy strong{font-size:20px}.stat-copy p{white-space:normal}.stat-copy small{font-size:9px}.stat-arrow{display:none}.bottom-grid{grid-template-columns:1fr}.calendar-card{min-height:300px}.calendar-days button{height:31px}.calendar-legend{font-size:9px}.attendance-page-grid{grid-template-columns:1fr}.filter-bar{flex-wrap:wrap}.filter-bar .search-field{flex-basis:100%;padding:4px}.filter-bar select,.date-filter{flex:1}.page-card-heading{align-items:flex-start}.export-buttons{justify-content:flex-end}.approval-item{grid-template-columns:1fr auto}.approval-description{grid-column:1}.approval-actions{grid-column:2;grid-row:1 / 3}.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-main{min-height:100vh;padding:32px 22px}.mobile-login-brand{display:block;margin-bottom:45px}.camera-layout{grid-template-columns:1fr}.camera-preview{height:220px}.modal-card{padding:22px}.mini-stats{gap:9px}.mini-stats>div{padding:12px;gap:9px}.mini-icon{width:39px;height:39px;border-radius:13px}.mini-stats p{font-size:10px}.mini-stats strong{font-size:18px}.leave-banner-art{margin-right:3%;width:90px;height:90px;border-radius:30px}.leave-banner-art svg{width:50px}.leave-banner h2{font-size:20px}.leave-banner p{max-width:290px}.dashboard-footer{font-size:9px}}
@media(max-width:480px){.topbar p{max-width:210px;line-height:1.4}.topbar-actions{gap:5px}.header-icon{width:36px;height:36px}.header-profile .avatar{width:36px;height:36px}.breadcrumb{font-size:8px}.welcome-copy{max-width:59%;padding:23px 18px}.welcome-copy h2{font-size:20px;white-space:normal}.welcome-copy p{font-size:10px;line-height:1.5}.welcome-art{width:72%;opacity:.92;background-size:100% 100%,auto 100%;background-position:center,72% center}.welcome-tag{font-size:8px}.hero-sparkle{display:none}.stats-grid{grid-template-columns:1fr;gap:9px}.stat-card{min-height:83px;padding:13px 16px}.stat-icon{width:48px;height:48px}.stat-copy{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:8px;flex:1}.stat-copy>div{grid-column:2;grid-row:1 / 3}.stat-copy strong{font-size:23px}.stat-copy small{font-size:9.5px}.period-chip{font-size:9px}.recent-card,.calendar-card{padding:18px 15px}.recent-footer{font-size:9px}.recent-footer button{font-size:9px}.recent-table{min-width:0;width:100%}.recent-table th,.recent-table td{padding-left:3px;padding-right:3px;white-space:nowrap;font-size:9px}.recent-table th:first-child,.recent-table td:first-child{padding-left:0}.recent-table th:last-child,.recent-table td:last-child{padding-right:0}.recent-table .status-pill{font-size:8px;padding:5px}.page-card-heading{flex-direction:column}.export-buttons{justify-content:flex-start}.history-card,.approval-section{padding:20px 17px}.data-table{min-width:650px}.table-summary span{display:none}.mini-stats{grid-template-columns:1fr}.mini-stats>div{padding:12px 15px}.leave-banner{padding:23px 20px}.leave-banner-art{width:65px;height:65px;border-radius:22px;margin-right:0}.leave-banner-art svg{width:37px}.leave-banner-art span{right:-10px;font-size:15px}.leave-banner p{max-width:220px}.form-row{grid-template-columns:1fr}.approval-item{grid-template-columns:1fr}.approval-description{grid-column:auto}.approval-actions{grid-column:auto;grid-row:auto}.selfie-time-row{gap:5px}.attendance-main-card{padding:23px 20px}.modal-backdrop{padding:12px}.modal-card{border-radius:20px}.camera-actions button{font-size:10px}.camera-preview{height:200px}.toast{left:14px;right:14px;bottom:14px;max-width:none}}

/* School profile (admin) */
.school-intro{display:flex;align-items:center;gap:15px;padding:22px 25px;border-radius:21px;background:linear-gradient(110deg,#e9f5ff,#f2efff);box-shadow:inset 2px 2px 4px #fff,0 7px 16px #becfe343;flex-wrap:wrap}
.school-intro-icon{width:53px;height:53px;flex:none;display:grid;place-items:center;border-radius:17px;background:#fff;color:#8fb2e8;box-shadow:inset 2px 2px 3px #fff,0 5px 11px #b8cbe96b}
.school-intro>div{flex:1;min-width:210px}.school-intro h2{font-size:18px;font-weight:900;margin-top:6px}.school-intro p{font-size:11px;color:#96a8bf;font-weight:700;margin-top:4px;line-height:1.5}
.active-school-card{display:grid;grid-template-columns:.9fr 1.35fr;gap:0;overflow:hidden;border:1px solid #eef4fb;border-radius:22px;background:#fff;box-shadow:var(--clay)}
.active-school-map{position:relative;min-height:200px;display:grid;place-items:center;background-color:#eaf6f1;background-image:linear-gradient(25deg,transparent 46%,#fff9 47%,#fff9 52%,transparent 53%),linear-gradient(115deg,transparent 39%,#fff9 40%,#fff9 45%,transparent 46%),linear-gradient(90deg,#d9eee4 1px,transparent 1px),linear-gradient(#d9eee4 1px,transparent 1px);background-size:auto,auto,32px 32px,32px 32px;overflow:hidden}
.active-school-map>span{width:78px;height:78px;display:grid;place-items:center;border-radius:27px;background:#fff;color:#89c8a7;box-shadow:0 10px 20px #94b9a75c,inset 1px 2px 4px #fff;z-index:1}
.map-ping{position:absolute;width:14px;height:14px;border-radius:50%;border:3px solid #fff;background:#efcd8b;box-shadow:0 3px 7px #a6bba966}.ping-one{left:24%;top:32%}.ping-two{right:22%;bottom:28%;background:#adbbea}
.active-school-copy{padding:23px 25px}
.active-flag{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:8px;background:#e8f8ef;color:#7abb99;font-size:9px;font-weight:900;letter-spacing:.4px}
.active-school-copy h2{font-size:21px;font-weight:900;margin-top:10px;letter-spacing:-.4px}.active-school-copy>p{font-size:11.5px;color:#9baabe;font-weight:700;margin-top:5px;line-height:1.5}
.coord-chips{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.coord-chips span{display:inline-flex;align-items:center;gap:5px;padding:7px 9px;border-radius:9px;background:#f5f9ff;color:#8ba3c6;font-size:10px;font-weight:900;box-shadow:inset 1px 2px 2px #fff}
.inactive-flag{padding:5px 8px;border-radius:8px;background:#f5f7fb;color:#b2bece;font-size:9px;font-weight:900}
.school-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:15px;margin-top:16px}
.school-card{padding:17px;border:1px solid #eef3fa;border-radius:18px;background:#fdfeff;box-shadow:inset 1px 2px 3px #fff,0 5px 12px #dde6f140}
.school-card.school-active{border-color:#d8eddf;background:linear-gradient(160deg,#f7fffa,#fff);box-shadow:inset 1px 2px 3px #fff,0 6px 14px #d6eadc5c}
.school-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.school-pin{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:#e9f1ff;color:#87a8e3;box-shadow:inset 1px 2px 3px #fff}.school-active .school-pin{background:#e6f8ee;color:#84c6a5}
.school-card h3{font-size:13.5px;font-weight:900;margin-top:12px;color:#465d7c}.school-address{display:flex;align-items:flex-start;gap:5px;font-size:10px;color:#9cabbe;font-weight:700;line-height:1.5;margin-top:5px}.school-address svg{margin-top:1px;color:#b3c1d1;flex:none}
.school-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0;padding:9px;border-radius:10px;background:#f7fafe}.school-meta span{font-size:8.5px;color:#b0bdcc;font-weight:800;display:flex;flex-direction:column;gap:2px;min-width:0}.school-meta strong{font-size:10px;color:#7387a2;font-weight:900;overflow:hidden;text-overflow:ellipsis}.school-actions{display:flex;gap:6px;flex-wrap:wrap}.school-actions button{font-size:9.5px;padding:8px 9px;min-height:32px}.school-actions .outline-button{box-shadow:none;border-color:#edf2f8;color:#97a7ba}.school-note{margin-top:15px}
.check-line{display:flex;align-items:flex-start;gap:8px;font-size:11px;color:#7f92aa;font-weight:800;line-height:1.5;padding:11px;border-radius:11px;background:#f7fafc;border:1px solid #eef3f9;cursor:pointer}.check-line input{appearance:none;width:17px;height:17px;flex:none;border:1.5px solid #c9d9ea;border-radius:5px;background:#fff;margin:0;position:relative;cursor:pointer}.check-line input:checked{background:#6d9aec;border-color:#6d9aec}.check-line input:checked:after{content:"✓";position:absolute;inset:0;color:#fff;font-size:11px;display:grid;place-items:center;font-weight:900}
@media(max-width:900px){.active-school-card{grid-template-columns:1fr}.active-school-map{min-height:130px}.school-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.active-school-card{grid-template-columns:1fr}.active-school-copy{padding:19px}.school-grid{grid-template-columns:1fr}.school-intro{padding:19px}.school-intro>.primary-button{width:100%}.school-actions button{flex:1}.school-meta{grid-template-columns:1fr 1fr}}

.deploy-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 23px;flex-wrap:wrap}
.deploy-copy{display:flex;align-items:center;gap:12px;min-width:240px;flex:1}
.deploy-copy h2{font-size:14px;font-weight:900}
.deploy-copy p{font-size:10.5px;color:#a0aec0;font-weight:700;margin-top:4px;line-height:1.5}
.deploy-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.deploy-meta{font-size:10px;color:#a9b6c7;font-weight:800}
.deploy-actions .primary-button{min-height:38px;text-decoration:none}
@media(max-width:600px){.deploy-actions{width:100%}.deploy-actions .primary-button{flex:1}}

.school-hours{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:11px}
.school-hours span{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:8px;background:#f3f7ff;color:#93a7c4;font-size:9px;font-weight:800}
.school-hours strong{color:#6d86a8;font-weight:900}
.schedule-chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 13px}
.schedule-chips span{display:inline-flex;align-items:center;gap:5px;padding:7px 9px;border-radius:9px;background:#f6faff;color:#8ea4c4;font-size:10px;font-weight:800;box-shadow:inset 1px 2px 2px #fff}
.schedule-chips strong{color:#5f7794;font-weight:900}

/* ===== Mobile legibility: larger, crisper type on phones ===== */
@media(max-width:720px){
  body{font-size:14px}
  .brand-copy small,.nav-group-label,.breadcrumb,.eyebrow,.soft-overline,.welcome-tag,.calendar-weekdays span,.calendar-legend,.today-mini-status,.camera-live,.status-pill,.role-pill,.active-flag,.inactive-flag,.school-hours span,.school-meta span,.coord-chips span{font-size:11px}
  th{font-size:11px}
  td{font-size:13px}
  .topbar h1{font-size:24px}
  .topbar p,.section-card-heading p,.today-heading p,.stat-copy p,.stat-copy small,.recent-footer,.recent-footer button,.dashboard-footer,.location-link,.demo-note,.info-note p,.help-card p,.profile-main small,.header-profile small,.table-summary,.page-info,.page-button,.location-footnote,.empty-state p,.approval-person p,.approval-description span,.file-link,.school-address,.schedule-chips span,.mini-stats p,.leave-shortcut p,.detail-title p,.geo-box p,.location-result p,.upload-box small{font-size:12px}
  .nav-item,.section-card-heading h2,.today-heading h2,.header-date,.text-link,.period-chip,.calendar-controls strong,.field>span,.form-label,.approval-person strong,.school-card h3,.mini-stats p strong,.detail-title strong,.geo-box strong,.location-result strong,.upload-box strong,.form-error,.toast,.help-content p,.help-content p strong{font-size:14px}
  .field input,.field textarea,.field select,.search-field input,.filter-bar select,.date-filter,.date-filter input,.choice-row button,.role-switcher button strong{font-size:16px} /* 16px prevents iOS zoom + blur on focus */
  .role-switcher button small{font-size:11px}
  .primary-button,.secondary-button,.outline-button,.approve-button,.reject-button,.danger-button,.welcome-link,.clear-filter{font-size:13px;min-height:44px}
  .calendar-days button,.calendar-days .calendar-day{height:34px;width:34px;font-size:13px}
  .recent-table th,.recent-table td{font-size:12px}
  .recent-table .status-pill{font-size:11px;padding:6px 8px}
  .stat-copy strong{font-size:26px}
  .today-times strong{font-size:22px}
  .welcome-copy h2{font-size:23px;white-space:normal}
  .welcome-copy p{font-size:13px}
  .modal-heading h2{font-size:21px}.modal-heading p{font-size:13px}
  .login-title h2{font-size:28px}.login-title p{font-size:13px}
  .avatar-sm{width:36px;height:36px;font-size:12px}.avatar-md{width:42px;height:42px;font-size:13px}
  .toast{font-size:13px}
  .modal-backdrop{background:#33455b8c}
}
@media(max-width:480px){
  .welcome-copy{max-width:100%;padding:22px 18px 150px}
  .welcome-art{width:100%;background-position:center,right bottom;background-size:100% 100%,auto 150px;opacity:1}
  .welcome-card{min-height:auto}
  .welcome-copy h2{font-size:22px}
  .stat-copy p{font-size:12px}.stat-copy small{font-size:11px}
  .calendar-legend{font-size:11px;flex-wrap:wrap;white-space:normal}
  .recent-table{min-width:0}
  .recent-table th,.recent-table td{font-size:12px;padding-left:4px;padding-right:4px}
  .topbar p{font-size:12px;max-width:none}
  .breadcrumb{font-size:10px}
  .table-summary span{display:inline}
  .data-table{min-width:560px}
}

/* Gallery (admin photo archive) */
.gallery-day-group{margin-top:20px}
.gallery-day-group:first-of-type{margin-top:16px}
.gallery-day-heading{display:flex;align-items:center;gap:8px;color:#8296b2;font-size:11.5px;font-weight:900;margin-bottom:11px}
.gallery-day-heading svg{color:#9bb6e8}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:13px}
.gallery-card{position:relative;padding:0;border:1px solid #eef3fa;border-radius:17px;overflow:hidden;background:#eef3fb;box-shadow:inset 1px 2px 3px #fff,0 5px 12px #d9e4f24a;aspect-ratio:3/4;text-align:left}
.gallery-card img{width:100%;height:100%;object-fit:cover;display:block}
.gallery-card-overlay{position:absolute;top:8px;right:8px}
.gallery-card-info{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:7px;padding:9px 8px;background:linear-gradient(0deg,#1c2b43d8,#1c2b4300)}
.gallery-card-info strong{display:block;color:#fff;font-size:10.5px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:92px}
.gallery-card-info span{display:block;color:#dbe6f7;font-size:9px;font-weight:700;margin-top:1px}
.gallery-card:hover img{transform:scale(1.04)}
.gallery-card img{transition:transform .25s ease}
.gallery-preview-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:16px 0}
.gallery-preview-meta>div{display:flex;flex-direction:column;gap:5px;padding:10px;border-radius:11px;background:#f6f9ff}
.gallery-preview-meta>div span{font-size:9.5px;color:#a3b0c3;font-weight:800}
.gallery-preview-meta>div strong{font-size:12px;font-weight:900;color:#5c6f8c}
@media(max-width:720px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.gallery-card-info strong{font-size:11px;max-width:80px}.gallery-card-info span{font-size:10px}.gallery-kind{font-size:10px}}
@media(max-width:480px){.gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-preview-meta{grid-template-columns:1fr}}

/* Two photos per day (absen masuk & pulang) */
.gallery-kind{position:absolute;top:8px;left:8px;display:inline-flex;align-items:center;gap:3px;padding:4px 7px;border-radius:8px;font-size:9px;font-weight:900;letter-spacing:.3px;background:#ffffffef;color:#6f8dbe;box-shadow:0 2px 6px #33455b2e}
.gallery-kind-in{color:#5f9f85;background:#eafaefee}
.gallery-kind-out{color:#b98a4e;background:#fff4e2ee}
.gallery-day-complete{display:inline-flex;align-items:center;gap:4px;margin-left:auto;padding:4px 8px;border-radius:8px;background:#eaf8f1;color:#79b99c;font-size:9px;font-weight:900}
.selfie-photo-status{display:flex;flex-wrap:wrap;gap:8px;margin:-10px 0 18px}
.selfie-photo-status span{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:9px;background:#f6f8fc;color:#a6b3c4;font-size:10px;font-weight:800}
.selfie-photo-status span.done{background:#eaf8f1;color:#77b897}
.today-photo-row{display:flex;gap:6px;margin:0 0 9px;flex-wrap:wrap}
.today-photo-row span{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border-radius:8px;background:#f6f8fc;color:#a9b5c5;font-size:9px;font-weight:800}
.today-photo-row span.done{background:#eaf8f1;color:#79b99c}
@media(max-width:720px){.gallery-kind{font-size:11px;padding:5px 8px}.gallery-day-complete{font-size:10px}.selfie-photo-status span,.today-photo-row span{font-size:11px}}

/* ===== Laravel additions ===== */
.icon{display:inline-block;vertical-align:middle;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.modal-backdrop[hidden],.camera-preview img[hidden],.camera-preview video[hidden],.sidebar-backdrop[hidden]{display:none!important;pointer-events:none!important}
.brand{color:inherit;text-decoration:none}
.calendar-days .calendar-day{position:relative;height:26px;width:29px;justify-self:center;display:grid;place-items:center;border-radius:9px;color:#8698b0;font-size:10px;font-weight:800}
.calendar-days .calendar-day.is-today{box-shadow:inset 0 0 0 1.5px #9cbcf3;color:#6793df}
.choice-label{position:relative;display:flex;align-items:center;justify-content:center;gap:7px;padding:11px;border:1px solid #ebf0f7;border-radius:11px;background:#fafcff;color:#9aaabd;font-size:12px;font-weight:900;cursor:pointer}
.choice-label input{position:absolute;opacity:0;width:0;height:0}
.choice-label:has(input:checked){background:#eaf2ff;border-color:#d7e7ff;color:#77a0e8;box-shadow:inset 1px 1px 3px #fff}
.pagination-simple{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding-top:15px;flex-wrap:wrap}
.page-button{display:inline-flex;align-items:center;padding:8px 11px;border-radius:9px;border:1px solid #e9f0f9;background:#fff;color:#8ba3c6;font-size:10.5px;font-weight:900;box-shadow:0 3px 7px #dce6f440}
.page-button.disabled{color:#c2ccd9;background:#f9fbfd}
.page-info{font-size:10px;color:#a9b6c7;font-weight:800}
.form-success{border-radius:10px;background:#eaf8f1;color:#6fb896;padding:10px 12px;font-size:11px;font-weight:800;line-height:1.5}
.row-actions form,.approval-actions form,.school-actions form{display:flex}
.school-actions form button{width:100%}
.photo-link{cursor:pointer;border:0;background:none;padding:0}
.header-icon{text-decoration:none}
.nav-lock{display:inline-flex}
.status-pill .icon{width:12px;height:12px}
.upload-box{cursor:pointer}
label.secondary-button{min-height:38px;padding:0 13px}
.review-photo{min-height:180px}
@media(max-width:720px){.calendar-days .calendar-day{height:34px;width:34px;font-size:13px}.choice-label{font-size:14px}.page-button,.page-info{font-size:12px}}
@media(max-width:600px){.pagination-simple{justify-content:center}}
/* Profil dan identitas sekolah */
.avatar{overflow:hidden;position:relative}.avatar-image{display:block;width:100%;height:100%;object-fit:cover}
.school-logo{display:inline-grid;place-items:center;flex:none;overflow:hidden;border:1px solid #edf2fb;background:#eef4ff;color:#8daee4;box-shadow:inset 1px 2px 3px #fff,0 4px 9px #c5d4e955}.school-logo img{width:100%;height:100%;padding:5px;display:block;object-fit:contain}.school-logo-sm{width:36px;height:36px;border-radius:12px}.school-logo-md{width:48px;height:48px;border-radius:15px}.school-logo-lg{width:78px;height:78px;border-radius:24px}.school-logo-lg img{padding:8px}.active-school-map>.school-logo{width:82px;height:82px;background:#fff;z-index:1}
.logo-picker{display:flex;align-items:center;gap:13px;padding:14px;border:1px solid #edf2fb;border-radius:15px;background:#f8fbff}.logo-picker-preview{display:grid;place-items:center;flex:none;width:64px;height:64px;border-radius:18px;background:#fff;box-shadow:inset 1px 2px 3px #fff,0 4px 10px #d1deec70;overflow:hidden}.logo-picker-preview>img{width:100%;height:100%;object-fit:contain;padding:6px}.logo-picker-preview .school-logo{width:100%;height:100%;border:0;box-shadow:none;background:transparent}.logo-picker-content{min-width:0;flex:1}.logo-picker-content strong{font-size:12px;font-weight:900}.logo-picker-content p{font-size:10px;color:#98a9bd;margin:3px 0 8px}.logo-picker-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.logo-picker-actions .outline-button{min-height:31px;font-size:10px}.logo-remove,.profile-remove{border:0;background:transparent;color:#d88e99;font-weight:900;font-size:11px;display:inline-flex;align-items:center;gap:5px;padding:7px}
.profile-welcome{min-height:145px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 30px;border-radius:23px;overflow:hidden;background:linear-gradient(120deg,#e8f4ff 0%,#f0edff 100%);box-shadow:inset 2px 2px 5px #fff,0 8px 19px #bacde052}.profile-welcome-copy h2{font-size:24px;font-weight:900;letter-spacing:-.6px;margin:9px 0 5px}.profile-welcome-copy h2 span{color:#e6bc75;font-size:16px}.profile-welcome-copy p{max-width:470px;color:#8da1ba;font-size:12px;font-weight:700;line-height:1.65}.profile-welcome-decoration{position:relative;width:96px;height:96px;margin-right:5%;display:grid;place-items:center;border-radius:34px;color:#91afe7;background:#f7f9ff;transform:rotate(8deg);box-shadow:inset 3px 3px 5px #fff,inset -3px -4px 8px #c4d5f266,0 8px 16px #b8c9e36b}.profile-welcome-decoration span,.profile-welcome-decoration i{position:absolute;color:#e7bd7e;font-style:normal;font-size:21px;top:-7px;right:-20px}.profile-welcome-decoration i{top:auto;right:auto;left:-20px;bottom:0;color:#b9a6e4}
.profile-layout{display:grid;grid-template-columns:minmax(250px,.82fr) minmax(0,1.4fr);gap:20px;align-items:start}.profile-photo-card,.profile-details-card{padding:24px}.profile-card-heading{display:flex;align-items:center;gap:11px}.profile-card-heading>div{flex:1;min-width:0}.profile-card-heading h2{font-size:15px;font-weight:900}.profile-card-heading p{font-size:10.5px;font-weight:700;color:#a0aec0;margin-top:3px}.profile-section-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;flex:none;box-shadow:inset 2px 2px 4px #fff,0 4px 8px #d4dfec70}.profile-section-icon.blue{background:#eaf2ff;color:#86a8e7}.profile-section-icon.mint{background:#e7f8ee;color:#80c6a5}
.profile-photo-stage{display:flex;flex-direction:column;align-items:center;text-align:center;margin:27px 0 20px}.profile-photo-halo{position:relative;width:142px;height:142px;border-radius:50%;padding:8px;background:#e9f2ff;box-shadow:inset 2px 2px 5px #c6d8ef80,0 7px 15px #c5d5e875}.profile-photo-circle{width:100%;height:100%;overflow:hidden;border:5px solid #fff;border-radius:50%;background:#f0ecfc}.profile-photo-circle>img{width:100%;height:100%;display:block;object-fit:cover}.profile-photo-circle .avatar{width:100%;height:100%;border:0;border-radius:50%;font-size:38px;box-shadow:none}.profile-camera-badge{position:absolute;right:5px;bottom:4px;width:37px;height:37px;display:grid;place-items:center;border:3px solid #fff;border-radius:13px;background:#85acef;color:#fff;box-shadow:0 4px 8px #acc2e888}.profile-photo-stage>strong{font-size:16px;font-weight:900;margin-top:16px}.profile-person-role{display:flex;align-items:center;gap:4px;margin-top:5px;font-size:11px;font-weight:800;color:#8ba5ca}.profile-photo-stage>p{max-width:260px;color:#a0aec0;line-height:1.6;font-size:11px;margin-top:12px}.profile-photo-actions{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap}.profile-photo-actions .primary-button{min-height:40px}.profile-save-button{width:100%;margin-top:10px;min-height:40px;display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:11px;background:#e3f5ec;color:#70b594;font-size:12px;font-weight:900}.profile-upload-hint{text-align:center;color:#aab7c8;font-size:10px;font-weight:700;margin-top:13px}.profile-photo-card>.form-error{margin-bottom:12px}
.profile-details-column{display:flex;flex-direction:column;gap:18px}.profile-verified{display:inline-flex;align-items:center;gap:4px;padding:6px 8px;border-radius:8px;background:#edf9f2;color:#79bd9b;font-size:9px;font-weight:900}.profile-field-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.profile-field-row{min-width:0;display:flex;align-items:center;gap:10px;padding:13px;border-radius:13px;background:#f8faff;border:1px solid #f1f5fa}.profile-field-icon{width:37px;height:37px;border-radius:12px;display:grid;place-items:center;flex:none}.profile-field-icon.lavender{background:#f0ebff;color:#ad9dd9}.profile-field-icon.blue{background:#eaf2ff;color:#8eaee7}.profile-field-icon.mint{background:#e8f8ef;color:#82c5a5}.profile-field-icon.peach{background:#fff3e3;color:#dfb27b}.profile-field-row div{min-width:0}.profile-field-row small,.profile-field-row strong{display:block;overflow:hidden;text-overflow:ellipsis}.profile-field-row small{font-size:10px;color:#a7b5c7;font-weight:800}.profile-field-row strong{font-size:12px;color:#586c88;font-weight:900;line-height:1.4;margin-top:4px;overflow-wrap:anywhere}.profile-data-note{display:flex;align-items:flex-start;gap:8px;padding:11px;border-radius:11px;background:#f4f8ff;color:#90a5c7}.profile-data-note p{font-size:10.5px;line-height:1.5;font-weight:700}.profile-tip-card{display:flex;gap:12px;align-items:center;padding:18px 20px;border-radius:18px;background:#f4efff;box-shadow:inset 2px 2px 4px #fff,0 6px 14px #d3cbe837}.profile-tip-card>span{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;flex:none;background:#e9e1fc;color:#ad9ade}.profile-tip-card strong{font-size:12px;color:#776c9b;font-weight:900}.profile-tip-card p{font-size:10.5px;color:#a99fbd;line-height:1.6;margin-top:4px}
@media(max-width:720px){.profile-welcome{padding:23px}.profile-welcome-copy h2{font-size:22px}.profile-welcome-copy p{font-size:12px}.profile-welcome-decoration{width:75px;height:75px;margin-right:2%;border-radius:26px}.profile-welcome-decoration svg{width:40px}.profile-layout{grid-template-columns:1fr}.profile-photo-card,.profile-details-card{padding:20px}.profile-card-heading h2{font-size:15px}.profile-card-heading p,.profile-upload-hint,.profile-photo-stage>p,.profile-data-note p,.profile-tip-card p{font-size:12px}.profile-field-row small{font-size:11px}.profile-field-row strong{font-size:13px}.logo-picker-content strong{font-size:13px}.logo-picker-content p{font-size:11px}.logo-picker-actions .outline-button{min-height:38px;font-size:12px}}
@media(max-width:480px){.profile-welcome{align-items:flex-start;min-height:145px}.profile-welcome-copy p{max-width:230px}.profile-welcome-decoration{width:57px;height:57px;flex:none;border-radius:20px;margin:8px 2px 0 0}.profile-welcome-decoration svg{width:30px}.profile-welcome-decoration span,.profile-welcome-decoration i{font-size:14px}.profile-field-list{grid-template-columns:1fr}.profile-photo-actions .primary-button{flex:1}.logo-picker{align-items:flex-start}.logo-picker-actions{gap:4px}}
/* Penyesuaian pratinjau Laravel */
.profile-photo-circle [data-image-fallback]{display:block;width:100%;height:100%}.logo-picker-preview [data-image-fallback]{width:100%;height:100%;display:block}.logo-picker-preview [data-image-preview]{width:100%;height:100%;object-fit:contain;padding:6px}.image-file-label{cursor:pointer}.profile-delete-form{text-align:center;margin-top:6px}
