@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.static{position:static}.table{display:table}}:root{--ink:#17152b;--muted:#737083;--paper:#f6f4ef;--white:#fff;--line:#e8e4dc;--plum:#6e3d72;--plum-soft:#eee5ef;--navy:#253652;--coral:#e9785d;--coral-soft:#f9e5df;--mint:#70a598;--mint-soft:#e3efeb;--shadow:0 18px 50px #2b253714}*{box-sizing:border-box}html{background:var(--paper)}body{color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0;font-family:DM Sans,sans-serif}button,input,select,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #6e3d7238}.app-shell{grid-template-columns:258px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{z-index:30;color:#f8f6fb;background:#242039;flex-direction:column;width:258px;display:flex;position:fixed;inset:0 auto 0 0;overflow:hidden}.sidebar:before{content:"";filter:blur(2px);background:#6e3d7257;border-radius:50%;width:260px;height:260px;position:absolute;top:-150px;right:-120px}.sidebar:after{content:"";opacity:.13;pointer-events:none;background-image:radial-gradient(#ffffff80 .6px,#0000 .6px);background-size:12px 12px;position:absolute;inset:0}.brand,.main-nav,.sidebar-bottom{z-index:1;position:relative}.brand{border-bottom:1px solid #ffffff14;align-items:center;gap:12px;height:88px;padding:0 22px;display:flex}.brand-mark{color:#fff;background:linear-gradient(145deg,#87568c,#623467);border-radius:14px 14px 14px 5px;place-items:center;width:43px;height:43px;display:grid;box-shadow:0 10px 24px #0a071240}.brand div:nth-child(2){flex-direction:column;display:flex}.brand strong{letter-spacing:-.7px;font:800 22px/1 Manrope,sans-serif}.brand span{color:#ffffff7a;letter-spacing:1.6px;text-transform:uppercase;margin-top:6px;font-size:10px}.main-nav{flex:1;padding:27px 14px}.nav-caption{color:#ffffff59;letter-spacing:1.7px;text-transform:uppercase;margin:0 12px 12px;font-size:10px;font-weight:700}.nav-item{color:#ffffff9e;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:13px;width:100%;height:47px;margin:3px 0;padding:0 13px;transition:all .2s;display:flex}.nav-item:hover{color:#fff;background:#ffffff0f;transform:translate(2px)}.nav-item.active{color:#fff;background:linear-gradient(90deg,#8b5b9170,#8b5b9126);box-shadow:inset 3px 0 #c38ebd}.nav-item span{flex:1;font-size:14px;font-weight:500}.nav-item em{color:#fff;background:var(--coral);border-radius:9px;place-items:center;min-width:21px;height:21px;padding:0 6px;font-size:10px;font-style:normal;font-weight:700;display:grid}.sidebar-bottom{border-top:1px solid #ffffff12;padding:12px 14px 18px}.access-card{background:#ffffff0e;border-radius:13px;align-items:center;gap:10px;padding:12px;display:flex}.access-icon{color:#c8a3c4;background:#c38ebd1f;border-radius:10px;place-items:center;width:32px;height:32px;display:grid}.access-card div:nth-child(2){flex-direction:column;flex:1;display:flex}.access-card span{color:#fff6;text-transform:uppercase;letter-spacing:.9px;font-size:9px}.access-card strong{margin-top:2px;font-size:12px}.access-check{color:#87b9aa}.profile-row{color:#fff;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;margin-top:15px;padding:5px 3px;display:flex}.profile-row>span:nth-child(2){flex-direction:column;flex:1;min-width:0;display:flex}.profile-row strong{font-size:12px}.profile-row small{color:#ffffff61;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:9px;overflow:hidden}.avatar{color:#3c2441;background:#d8b3d2;border-radius:11px;place-items:center;width:34px;height:34px;font-size:11px;font-weight:800;display:grid}.workspace{grid-column:2;min-width:0}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:20;background:#faf9f6e8;justify-content:space-between;align-items:center;gap:18px;height:88px;padding:0 clamp(22px,4vw,58px);display:flex;position:sticky;top:0}.search-box{border:1px solid var(--line);color:#9994a1;background:#fff;border-radius:12px;align-items:center;gap:9px;width:min(390px,36vw);height:43px;padding:0 13px;display:flex}.search-box input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:12px}.search-box kbd{color:#a09ba6;background:#faf9f7;border:1px solid #e3dfd7;border-radius:5px;padding:3px 6px;font-size:9px}.search-box.compact{width:280px;height:39px}.top-actions{align-items:center;gap:12px;display:flex}.icon-button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:11px;place-items:center;width:40px;height:40px;display:grid}.notification-button{position:relative}.notification-button span{background:var(--coral);border:2px solid #fff;border-radius:50%;width:7px;height:7px;position:absolute;top:8px;right:9px}.demo-pill{height:30px;color:var(--plum);background:var(--plum-soft);border:1px solid #e3d4e4;border-radius:99px;align-items:center;gap:6px;padding:0 10px;font-size:10px;font-weight:700;display:flex}.role-switcher{position:relative}.role-trigger{border:1px solid var(--line);cursor:pointer;text-align:left;background:#fff;border-radius:13px;align-items:center;gap:9px;min-width:176px;padding:5px 9px 5px 5px;display:flex}.role-trigger>span:nth-child(2){flex-direction:column;flex:1;display:flex}.role-trigger small{color:var(--muted);text-transform:uppercase;letter-spacing:.7px;font-size:8px}.role-trigger strong{margin-top:1px;font-size:11px}.role-avatar{border-radius:11px;flex:none;place-items:center;width:35px;height:35px;font-size:10px;font-weight:800;display:grid}.role-eleve{color:#8a4d37;background:#f4cdbf}.role-professeur{color:#365f56;background:#cbe2da}.role-surveillant{color:#354966;background:#cbd7e7}.role-intendant{color:#725e2e;background:#ebdcae}.role-proviseur{color:#5b315f;background:#ddc5dc}.role-menu{border:1px solid var(--line);width:320px;box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:10px;animation:.16s both menuIn;position:absolute;top:calc(100% + 9px);right:0}.role-menu>p{color:var(--muted);text-transform:uppercase;letter-spacing:1.3px;margin:5px 8px 8px;font-size:9px;font-weight:700}.role-menu button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:11px;align-items:center;gap:10px;width:100%;padding:8px;display:flex}.role-menu button:hover,.role-menu button.selected{background:#f7f4f7}.role-menu button>span:nth-child(2){flex-direction:column;flex:1;display:flex}.role-menu strong{font-size:11px}.role-menu small{color:var(--muted);margin-top:2px;font-size:9px}.content-wrap{width:min(1440px,100%);margin:0 auto;padding:38px clamp(22px,4vw,58px) 70px}.notice{color:#633d66;background:#f4ebf3;border:1px solid #e6d6e6;border-radius:12px;justify-content:space-between;align-items:center;min-height:42px;margin:-12px 0 20px;padding:10px 12px 10px 15px;font-size:12px;display:flex}.notice button{color:inherit;cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.page-heading{justify-content:space-between;align-items:flex-end;gap:25px;margin-bottom:29px;display:flex}.eyebrow{color:var(--plum);letter-spacing:1.6px;text-transform:uppercase;margin-bottom:8px;font-size:9px;font-weight:800;display:block}.page-heading h1{letter-spacing:-1.4px;margin:0;font:700 clamp(28px,3vw,38px)/1.08 Manrope,sans-serif}.page-heading p{color:var(--muted);margin:8px 0 0;font-size:13px}.heading-actions{gap:10px;display:flex}.button{cursor:pointer;border:0;border-radius:11px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 16px;font-size:11px;font-weight:700;transition:transform .18s,box-shadow .18s;display:inline-flex}.button:hover{transform:translateY(-1px)}.button.primary{color:#fff;background:var(--plum);box-shadow:0 10px 22px #6e3d722e}.button.secondary{border:1px solid var(--line);color:var(--ink);box-shadow:none;background:#fff}.button.light{color:var(--navy);background:#fff}.button.full{width:100%}.button:disabled{opacity:.55;cursor:wait}.metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:19px;display:grid}.metric-card{background:#ffffffe0;border:1px solid #e8e4dce6;border-radius:17px;grid-template-rows:auto auto auto;grid-template-columns:41px 1fr;column-gap:12px;min-height:139px;padding:20px;display:grid;box-shadow:0 8px 26px #261f3009}.metric-card>span{color:var(--muted);align-self:center;font-size:10px;font-weight:600}.metric-card>strong{letter-spacing:-.8px;grid-column:1/-1;margin-top:12px;font:700 26px/1 Manrope,sans-serif}.metric-card>small{color:#8a8591;grid-column:1/-1;margin-top:7px;font-size:9px}.metric-icon{border-radius:12px;place-items:center;width:41px;height:41px;display:grid}.tone-plum{color:var(--plum);background:var(--plum-soft)}.tone-mint{color:#427a6c;background:var(--mint-soft)}.tone-coral{color:#bd5b45;background:var(--coral-soft)}.tone-navy{color:var(--navy);background:#e3e9f1}.dashboard-grid{grid-template-columns:1.35fr 1fr;gap:19px;margin-bottom:19px;display:grid}.panel{border:1px solid var(--line);background:#ffffffeb;border-radius:18px;padding:23px;box-shadow:0 12px 38px #2b25370b}.panel-header{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:17px;display:flex}.panel-header div{flex-direction:column;display:flex}.panel-header span{color:var(--muted);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:5px;font-size:8px;font-weight:700}.panel-header h2{letter-spacing:-.35px;margin:0;font:700 17px/1.15 Manrope,sans-serif}.panel-header button{color:var(--plum);cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;padding:0;font-size:9px;font-weight:700;display:flex}.timeline{position:relative}.timeline:before{content:"";background:#eeeae4;width:1px;position:absolute;top:16px;bottom:16px;left:62px}.timeline-row{grid-template-columns:45px 16px 1fr auto;align-items:center;gap:12px;min-height:62px;display:grid}.timeline-time{color:var(--muted);font-size:10px;font-weight:600}.timeline-dot{z-index:1;border:3px solid #fff;border-radius:50%;justify-self:center;width:10px;height:10px;box-shadow:0 0 0 2px}.timeline-row div{flex-direction:column;display:flex}.timeline-row strong{font-size:11px}.timeline-row small{color:var(--muted);margin-top:3px;font-size:9px}.status-badge{color:#5f5b66;text-transform:capitalize;white-space:nowrap;background:#f3f1ed;border-radius:99px;padding:5px 8px;font-size:8px;font-weight:700}.status-badge.success{color:#3d7568;background:var(--mint-soft)}.announcement-list{gap:8px;display:grid}.announcement{border-bottom:1px solid #eeeae4;grid-template-columns:4px 1fr;gap:11px;padding:11px 0;display:grid}.announcement:last-child{border-bottom:0}.announcement-mark{background:var(--coral);border-radius:99px;width:4px;min-height:44px}.announcement div{min-width:0}.announcement strong{font-size:11px;display:block}.announcement p{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin:4px 0 5px;font-size:9px;overflow:hidden}.announcement small{color:#aaa5ad;font-size:8px}.inline-action{color:var(--plum);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin-top:12px;padding:0;font-size:9px;font-weight:700;display:flex}.quick-panel{padding-bottom:18px}.permission-row{grid-template-columns:repeat(3,1fr);gap:11px;display:grid}.permission-row>div{background:#f8f6f2;border-radius:12px;grid-template-rows:1fr 1fr;grid-template-columns:28px 1fr;column-gap:9px;padding:13px;display:grid}.permission-row>div>span{color:#467c6e;background:var(--mint-soft);border-radius:9px;grid-row:1/3;place-items:center;width:28px;height:28px;display:grid}.permission-row strong{align-self:end;font-size:9px}.permission-row small{color:var(--muted);font-size:8px}.table-panel{padding:0;overflow:hidden}.table-panel>.panel-header{padding:23px 23px 0}.table-toolbar{justify-content:space-between;gap:12px;padding:0 23px 16px;display:flex}.filter-button{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:10px;align-items:center;gap:8px;padding:0 12px;font-size:10px;display:flex}.data-table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table th{color:#9a959e;text-align:left;text-transform:uppercase;letter-spacing:1px;background:#faf9f6;padding:11px 20px;font-size:8px;font-weight:800}.data-table td{border-top:1px solid #efebe5;padding:14px 20px;font-size:10px}.student-cell{align-items:center;gap:10px;min-width:170px;display:flex}.student-cell>div{flex-direction:column;display:flex}.student-cell small,.table-sub{color:var(--muted);margin-top:3px;font-size:8px}.student-avatar{color:#59405c;background:#eee5ef;border-radius:11px;place-items:center;width:34px;height:34px;font-size:9px;font-weight:800;display:grid}.class-chip{color:#54505c;white-space:nowrap;background:#f2f0ec;border-radius:8px;padding:5px 8px;font-size:9px;font-weight:600}.progress-cell{align-items:center;gap:8px;min-width:110px;display:flex}.progress-cell>span{background:#e9e5df;border-radius:99px;width:64px;height:5px;overflow:hidden}.progress-cell i{border-radius:inherit;background:var(--mint);height:100%;display:block}.amount-due{color:#bd5b45}.amount-ok{color:#4e8879}.row-action{border:1px solid var(--line);width:29px;height:29px;color:var(--plum);cursor:pointer;background:#fff;border-radius:9px;place-items:center;display:grid}.split-layout{grid-template-columns:1.5fr .7fr;gap:19px;display:grid}.case-list{display:grid}.case-row{border-bottom:1px solid #eeeae4;grid-template-columns:38px 1fr auto;align-items:center;gap:12px;padding:14px 0;display:grid}.case-row>div{min-width:0}.case-row strong{font-size:11px}.case-row p{color:var(--muted);margin:3px 0;font-size:9px}.case-row small{color:#a29ca6;font-size:8px}.severity{border-radius:11px;place-items:center;width:38px;height:38px;display:grid}.severity-mineur{color:#806d34;background:#f3ead0}.severity-moyen{color:#b25845;background:var(--coral-soft)}.severity-majeur{color:#9c3842;background:#f3dadd}.panel-button{margin-top:18px}.attendance-summary{flex-direction:column;display:flex}.radial{background:conic-gradient(var(--mint) 0 94%,#eeeae4 94% 100%);border-radius:50%;width:170px;height:170px;margin:12px auto 25px;padding:14px}.radial:before{content:"";background:#fff;border-radius:50%;width:100%;height:100%;display:block}.radial div{text-align:center;place-content:center;height:142px;margin-top:-142px;display:grid;position:relative}.radial strong{font:800 30px/1 Manrope,sans-serif}.radial span{color:var(--muted);margin-top:5px;font-size:9px}.legend{gap:11px;display:grid}.legend span{color:var(--muted);align-items:center;gap:8px;font-size:9px;display:flex}.legend i{border-radius:50%;width:8px;height:8px}.legend strong{color:var(--ink);margin-left:auto}.legend-mint{background:var(--mint)}.legend-coral{background:var(--coral)}.legend-plum{background:var(--plum)}.finance-banner{color:#fff;background:linear-gradient(125deg,#242039,#37445e);border-radius:19px;grid-template-columns:1fr 1.1fr auto;align-items:center;gap:35px;min-height:200px;margin-bottom:19px;padding:30px 34px;display:grid;position:relative;overflow:hidden}.finance-banner:after{content:"";background:#97669738;border-radius:50%;width:300px;height:300px;position:absolute;top:-170px;right:12%}.finance-banner>*{z-index:1;position:relative}.finance-banner>div:first-child{flex-direction:column;display:flex}.finance-banner span{color:#ffffff8f;text-transform:uppercase;letter-spacing:1px;font-size:9px}.finance-banner strong{margin:8px 0;font:800 38px/1 Manrope,sans-serif}.finance-banner small{color:#ffffff73;font-size:9px}.finance-bars{align-items:end;gap:9px;height:105px;display:flex}.finance-bars i{background:linear-gradient(#c89ac2,#7f5a83);border-radius:5px 5px 2px 2px;flex:1;min-width:15px}.payment-list{display:grid}.payment-row{border-bottom:1px solid #eeeae4;grid-template-columns:38px 1fr auto auto;align-items:center;gap:12px;padding:14px 0;display:grid}.payment-row:last-child{border-bottom:0}.payment-icon{color:#477c6f;background:var(--mint-soft);border-radius:11px;place-items:center;width:38px;height:38px;display:grid}.payment-row div{flex-direction:column;display:flex}.payment-row div strong{font-size:10px}.payment-row div small{color:var(--muted);margin-top:4px;font-size:8px}.payment-row>strong{font-size:11px}.subject-grid{grid-template-columns:repeat(2,1fr);gap:17px;display:grid}.subject-card{border:1px solid var(--line);background:#fff;border-radius:18px;grid-template-columns:1fr auto;min-height:225px;padding:23px;display:grid;position:relative;overflow:hidden}.subject-index{color:#6e3d720f;font:800 100px/1 Manrope,sans-serif;position:absolute;top:-24px;right:-3px}.subject-card small{color:var(--muted);font-size:9px}.subject-card h3{margin:6px 0 0;font:700 18px Manrope,sans-serif}.subject-score{text-align:right;flex-direction:column;display:flex}.subject-score strong{font:800 22px Manrope,sans-serif}.subject-score span{color:var(--muted);font-size:8px}.subject-progress{background:#eeeae4;border-radius:99px;grid-column:1/-1;align-self:end;height:6px;overflow:hidden}.subject-progress i{border-radius:inherit;background:var(--plum);height:100%;display:block}.subject-card button{width:fit-content;color:var(--plum);background:0 0;border:0;grid-column:1/-1;align-self:end;align-items:center;gap:6px;padding:0;font-size:9px;font-weight:700;display:flex}.access-hero{color:#fff;background:#242039;border-radius:22px;grid-template-columns:1.2fr .8fr;align-items:center;min-height:300px;padding:36px 44px;display:grid;overflow:hidden}.access-hero h2{letter-spacing:-1px;margin:7px 0 13px;font:700 31px/1.16 Manrope,sans-serif}.access-hero p{color:#ffffff94;max-width:540px;margin:0 0 22px;font-size:11px;line-height:1.7}.role-orbit{border:1px solid #ffffff21;border-radius:50%;justify-self:center;width:230px;height:230px;position:relative}.role-orbit:before{content:"";border:1px solid #ffffff17;border-radius:50%;position:absolute;inset:42px}.orbit-center{color:#fff;background:var(--plum);border-radius:20px;place-items:center;width:62px;height:62px;display:grid;position:absolute;inset:50%;translate:-50% -50%;box-shadow:0 0 50px #c38ebd47}.orbit-role{border:3px solid #242039;border-radius:12px;place-items:center;width:38px;height:38px;font-size:9px;font-weight:800;display:grid;position:absolute}.orbit-0{top:42%;left:8px}.orbit-1{top:8px;left:39px}.orbit-2{top:9px;right:35px}.orbit-3{bottom:45px;right:5px}.orbit-4{bottom:-3px;left:80px}.role-cards{grid-template-columns:repeat(5,1fr);gap:12px;margin-top:17px;display:grid}.role-cards article{border:1px solid var(--line);background:#fff;border-radius:15px;padding:16px}.role-cards article>div{flex-direction:column;margin-top:11px;display:flex}.role-cards strong{font-size:11px}.role-cards small{min-height:30px;color:var(--muted);margin-top:3px;font-size:8px;line-height:1.4}.role-cards ul{border-top:1px solid #eeeae4;margin:11px 0 0;padding:10px 0 0;list-style:none}.role-cards li{color:#66616d;align-items:center;gap:5px;margin:6px 0;font-size:8px;display:flex}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1814239e;place-items:center;padding:20px;animation:.2s both fadeIn;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:22px;width:min(920px,100%);animation:.25s both modalIn;position:relative;box-shadow:0 30px 90px #0d0a1647}.modal-close{z-index:2;cursor:pointer;background:#f5f3efe6;border:0;border-radius:10px;place-items:center;width:35px;height:35px;display:grid;position:absolute;top:15px;right:15px}.auth-modal{grid-template-columns:.95fr 1.05fr;min-height:540px;display:grid;overflow:hidden}.auth-side{color:#fff;background:#242039;padding:48px;position:relative;overflow:hidden}.auth-side:after{content:"";background:#814d8459;border-radius:50%;width:320px;height:320px;position:absolute;bottom:-190px;left:-130px}.auth-side>span{color:#ffffff73;letter-spacing:1.4px;margin-top:35px;font-size:9px;display:block}.auth-side h2{letter-spacing:-1px;margin:14px 0;font:700 31px/1.18 Manrope,sans-serif}.auth-side>p{color:#ffffff94;font-size:11px;line-height:1.7}.security-note{z-index:1;color:#b9d8ce;align-items:center;gap:10px;margin-top:30px;display:flex;position:relative}.security-note span{flex-direction:column;display:flex}.security-note strong{font-size:10px}.security-note small{color:#fff6;margin-top:3px;font-size:8px}.login-page{background:var(--paper);place-items:center;min-height:100vh;padding:40px 20px;display:grid}.login-card{animation:.3s both modalIn;position:relative}.auth-roles{z-index:1;flex-direction:column;gap:10px;margin:22px 0 0;padding:0;list-style:none;display:flex;position:relative}.auth-roles li{background:#ffffff0d;border-radius:12px;align-items:center;gap:10px;padding:8px;display:flex}.auth-roles li>span:nth-child(2){flex-direction:column;display:flex}.auth-roles li strong{font-size:10px}.auth-roles li small{color:#ffffff73;margin-top:2px;font-size:8px;line-height:1.4}.login-back{width:100%;color:var(--muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:7px;margin-top:8px;padding:10px;font-size:9px;font-weight:700;display:flex}.auth-form,.action-modal{padding:48px}.auth-form h2,.action-modal h2{letter-spacing:-.8px;margin:5px 0 7px;font:700 27px/1.2 Manrope,sans-serif}.auth-form>p,.action-modal>p{color:var(--muted);margin:0 0 25px;font-size:10px}.auth-form label,.action-modal label{color:#514c58;flex-direction:column;gap:7px;margin-bottom:14px;font-size:9px;font-weight:700;display:flex}.auth-form input,.action-modal input,.action-modal select,.action-modal textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fbfaf8;border-radius:11px;font-size:11px}.auth-form input,.action-modal input,.action-modal select{height:43px;padding:0 12px}.action-modal textarea{resize:vertical;min-height:100px;padding:12px}.auth-toggle{width:100%;color:var(--plum);cursor:pointer;background:0 0;border:0;margin-top:14px;font-size:9px;font-weight:700}.form-error,.form-success{border-radius:9px;margin:0 0 13px;padding:10px 12px;font-size:9px}.form-error{color:#9c4334;background:var(--coral-soft)}.form-success{color:#3b7567;background:var(--mint-soft)}.action-modal{width:min(560px,100%)}.action-modal>.role-avatar{margin-bottom:16px}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.permission-preview{color:#487a6e;background:var(--mint-soft);border-radius:10px;align-items:center;gap:9px;margin:4px 0 18px;padding:12px;font-size:9px;display:flex}.modal-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.skeleton{position:relative;overflow:hidden;background:#ebe8e2!important}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#fff9,#0000);animation:1.3s infinite shimmer;position:absolute;inset:0;translate:-100%}.skeleton.tall{min-height:330px}.error-state{text-align:center;min-height:400px;color:var(--plum);align-content:center;place-items:center;display:grid}.error-state h2{color:var(--ink);margin:15px 0 4px;font:700 20px Manrope,sans-serif}.error-state p{color:var(--muted);margin:0 0 18px;font-size:11px}.mobile-only{display:none}.reveal{animation:.45s both reveal}@keyframes reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}}@keyframes menuIn{0%{opacity:0;transform:translateY(-5px)}}@keyframes modalIn{0%{opacity:0;transform:translateY(10px)scale(.985)}}@keyframes shimmer{to{translate:100%}}@media(max-width:1100px){.metrics-grid{grid-template-columns:repeat(2,1fr)}.role-cards{grid-template-columns:repeat(3,1fr)}.demo-pill{display:none}}@media(max-width:820px){.app-shell{display:block}.workspace{width:100%}.sidebar{transition:transform .25s;transform:translate(-100%);box-shadow:25px 0 70px #14101e40}.sidebar-open{transform:translate(0)}.mobile-only{display:grid}.brand .mobile-only{color:#fff;background:#ffffff0d;border-color:#ffffff1a;margin-left:auto}.topbar{height:72px;padding:0 18px}.topbar>.search-box{display:none}.top-actions{margin-left:auto}.role-trigger{min-width:140px}.role-trigger small,.notification-button{display:none}.content-wrap{padding:28px 18px 50px}.page-heading{flex-direction:column;align-items:flex-start}.dashboard-grid,.split-layout,.permission-row,.subject-grid,.access-hero{grid-template-columns:1fr}.role-orbit{display:none}.role-cards{grid-template-columns:repeat(2,1fr)}.auth-modal{grid-template-columns:1fr;max-height:90vh;overflow-y:auto}.auth-side{display:none}}@media(max-width:560px){.metrics-grid{grid-template-columns:1fr 1fr;gap:9px}.metric-card{min-height:125px;padding:14px}.metric-card>strong{font-size:21px}.metric-icon{width:35px;height:35px}.page-heading h1{font-size:28px}.heading-actions{width:100%}.heading-actions .button{flex:1}.timeline-row{grid-template-columns:38px 14px 1fr}.timeline-row>.status-badge{display:none}.timeline:before{left:50px}.panel{padding:18px}.role-menu{width:auto;position:fixed;top:78px;left:12px;right:12px}.role-cards{grid-template-columns:1fr}.access-hero{padding:28px 24px}.finance-banner{grid-template-columns:1fr;padding:25px}.finance-bars{display:none}.payment-row{grid-template-columns:38px 1fr auto}.payment-row .status-badge{display:none}.form-grid{grid-template-columns:1fr;gap:0}.auth-form,.action-modal{padding:34px 24px 24px}.modal-backdrop{padding:10px}}
