:root{--gold-950:#181307;--gold-900:#332408;--gold-850:#4a340b;--gold-800:#68490e;--gold-700:#8c6414;--gold-600:#b58623;--gold-500:#c5a059;--gold-400:#d4af37;--gold-300:#e2c76a;--gold-200:#f2e1a4;--gold-100:#fbf5e1;--gold-50:#fdfaf2;--teal-900:#251a06;--teal-800:#3f2c0a;--teal-700:#8c6414;--teal-600:#b58623;--teal-500:#c5a059;--teal-50:#fdfaf2;--ink-950:#0d0f12;--ink-900:#14171d;--ink-800:#1f242e;--ink-700:#333c4a;--ink-600:#4a5666;--ink-500:#596575;--ink-400:#626e80;--ink-200:#d9ded9;--ink-100:#eceeea;--ink-50:#f6f5f0;--green-700:#166534;--green-600:#15803d;--green-500:#22c55e;--green-50:#f0fdf4;--amber-700:#92400e;--amber-600:#b45309;--amber-500:#f59e0b;--amber-50:#fffbeb;--red-600:#dc2626;--red-500:#ef4444;--red-50:#fef2f2;--blue-600:#2563eb;--blue-50:#eff6ff;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-xl:28px;--r-full:999px;--sh-xs:0 1px 2px #0f172a0f;--sh-sm:0 1px 3px #0f172a12, 0 1px 2px #0f172a0a;--sh-md:0 4px 14px #0f172a14;--sh-lg:0 14px 36px #0f172a24;--bg:#f3f2ed;--card:#fcfbf8;--border:var(--ink-200);--success:var(--green-600)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--ink-900);text-align:right;-webkit-font-smoothing:antialiased;direction:rtl;font-family:Segoe UI,Tahoma,Noto Sans Arabic,Cairo,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select,textarea{color:inherit;font-family:inherit;font-size:16px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible{outline:3px solid var(--gold-600);outline-offset:2px}::placeholder{color:var(--ink-400)}.auth{min-height:100dvh;padding:max(var(--sp-5), env(safe-area-inset-top)) var(--sp-4) max(var(--sp-5), env(safe-area-inset-bottom));flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.auth-bg{background:radial-gradient(100% 70% at 85% 0,#d4af3738,#0000 55%),radial-gradient(90% 70% at 10% 100%,#c5a05940,#0000 50%),linear-gradient(165deg,#0d0f12 0%,#16191f 45%,#241c0e 100%);position:absolute;inset:0}.auth-bg:after{content:"";background-image:radial-gradient(#d4af371f 1px,#0000 1px);background-size:24px 24px;position:absolute;inset:0}.auth-card{z-index:1;background:var(--card);border-radius:var(--r-xl);padding:var(--sp-6);border:1px solid #c5a05959;width:100%;max-width:440px;position:relative;box-shadow:0 20px 45px -10px #00000073,0 0 0 1px #d4af3726}.auth-brand{text-align:center;margin-bottom:var(--sp-6)}.auth-logo{margin-bottom:var(--sp-3);filter:drop-shadow(0 6px 16px #c5a0594d);display:inline-flex}.auth-brand h1{letter-spacing:-.2px;color:var(--ink-950);font-size:23px;font-weight:800}.auth-brand p{color:var(--ink-500);margin-top:var(--sp-1);font-size:14px}.auth-form{gap:var(--sp-4);flex-direction:column;display:flex}.inp-group label{color:var(--ink-700);margin-bottom:6px;font-size:14px;font-weight:700;display:block}.inp{align-items:center;gap:var(--sp-2);background:var(--ink-50);border:1.5px solid var(--ink-200);border-radius:var(--r-md);padding:0 var(--sp-3);transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.inp:focus-within{border-color:var(--gold-500);background:var(--card);box-shadow:0 0 0 4px #c5a0592e}.inp-ico{opacity:.75;flex-shrink:0;font-size:17px}.inp input{background:0 0;border:none;outline:none;flex:1;min-width:0;padding:13px 0;font-weight:600}.inp-act{opacity:.7;border-radius:var(--r-sm);flex:0 0 44px;place-items:center;min-width:44px;min-height:44px;padding:0;font-size:17px;display:grid}.inp-act:hover{opacity:1;background:var(--ink-100)}.role-hint{align-items:center;min-height:26px;display:flex}.auth-foot{justify-content:center;align-items:center;gap:var(--sp-1);margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--ink-100);display:flex}.auth-note{margin-top:var(--sp-4);background:var(--gold-50);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);border:1px solid #c5a05940}.auth-note .row{border:none;padding:5px 0}.auth-note code{color:var(--gold-700);background:var(--card);border-radius:var(--r-sm);border:1px solid #c5a0594d;padding:2px 8px;font-size:13px;font-weight:700}.app-shell{flex-direction:column;min-height:100vh;display:flex}.page{padding:var(--sp-4);width:100%;max-width:920px;margin:0 auto}.page-wide{max-width:1240px}.topbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:2px solid var(--gold-500);padding:calc(var(--sp-3) + env(safe-area-inset-top)) var(--sp-4) var(--sp-3);justify-content:space-between;align-items:center;gap:var(--sp-3);z-index:20;color:#fff;background:linear-gradient(#18191c 0%,#101114 100%);display:flex;position:sticky;top:0;box-shadow:0 4px 18px #00000047}html.capacitor-android .topbar{padding-top:calc(var(--sp-3) + max(env(safe-area-inset-top,0px), 28px))}.topbar h1{letter-spacing:-.2px;color:#fff;font-size:16.5px;font-weight:800}.topbar .sub{color:var(--gold-300);margin-top:1px;font-size:12.5px}.worker-topbar-heading h1{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.worker-topbar-actions{flex:none;align-items:center;gap:6px;display:flex}.worker-topbar-actions .worker-notification-trigger{width:44px;min-width:44px;height:44px;min-height:44px;color:var(--gold-300);padding:0;font-size:18px;position:relative}.notification-count{top:-3px;border:1px solid var(--ink-900);border-radius:var(--r-full);place-items:center;min-width:19px;height:19px;padding:0 4px;font-size:10px;line-height:1;display:grid;position:absolute;inset-inline-end:-5px}.role-chip{color:#f7e6b5;border-radius:var(--r-full);white-space:nowrap;background:#d4af3729;border:1px solid #d4af3759;padding:4px 12px;font-size:12px;font-weight:700}.card{background:var(--card);border:1px solid var(--ink-200);border-radius:var(--r-lg);padding:var(--sp-4);box-shadow:var(--sh-sm);margin-bottom:var(--sp-4)}.card-title{color:var(--ink-500);text-transform:none;letter-spacing:.2px;margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;gap:var(--sp-2);font-size:14px;font-weight:800;display:flex}.icon-label{align-items:center;gap:var(--sp-2);min-width:0;display:inline-flex}.icon-label .app-icon{color:var(--gold-700)}.notification-list{gap:8px;display:grid}.notification-item{border:1px solid var(--ink-200);border-radius:var(--r-md);background:var(--card);grid-template-columns:40px minmax(0,1fr) auto;align-items:start;gap:10px;padding:12px;display:grid}.notification-item.is-unread{background:var(--gold-50);box-shadow:inset -3px 0 0 var(--gold-500);border-color:#c5a05973}.notification-icon{background:var(--card);border-radius:50%;place-items:center;width:40px;height:40px;font-size:19px;display:grid}.notification-content{min-width:0}.notification-title{font-weight:800;line-height:1.5}.notification-body{color:var(--ink-600);overflow-wrap:anywhere;margin:2px 0 5px;line-height:1.65}.notification-read{min-width:44px;min-height:44px}.notification-toolbar-actions{gap:8px}.modal-close{width:44px;min-width:44px;height:44px;min-height:44px;padding:0}.modal-panel:focus{outline:none}.app-dialog-form{gap:var(--sp-3);display:grid}.app-dialog-message{color:var(--ink-700);background:var(--ink-50);border:1px solid var(--ink-200);border-inline-start:4px solid var(--gold-500);border-radius:var(--r-sm);white-space:pre-line;overflow-wrap:anywhere;padding:13px 15px;line-height:1.75}.app-dialog-message.is-info{border-inline-start-color:var(--blue-600);background:var(--blue-50)}.app-dialog-message.is-success{border-inline-start-color:var(--green-600);background:var(--green-50)}.app-dialog-message.is-error{border-inline-start-color:var(--red-600);background:var(--red-50)}.app-dialog-field{margin:0}.app-dialog-field textarea{resize:vertical;min-height:112px}.app-dialog-counter{color:var(--ink-500);text-align:left;margin-top:4px;display:block}.app-dialog-error{margin:0}.app-dialog-actions{justify-content:flex-start;gap:var(--sp-2);padding-top:var(--sp-2);flex-wrap:wrap;display:flex}.app-dialog-actions .btn{min-width:124px}@media (width<=520px){.modal-panel{max-height:min(88dvh,720px)!important}.card-title{flex-wrap:wrap}.stat-row{grid-template-columns:1fr}.project-confirm-actions .btn{flex:130px}.modal-backdrop.is-centered{align-items:center}.app-dialog-actions .btn{flex:120px}.notification-toolbar{align-items:stretch}.notification-toolbar>span{flex:100%}.notification-toolbar-actions{flex-wrap:wrap;width:100%}.notification-toolbar-actions .btn{flex:120px}.owner-attendance-heading{align-items:stretch}.owner-attendance-action{width:100%}.owner-attendance-action>.btn{justify-content:center;width:100%}.owner-attendance-stats{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}}@media (width<=360px){.arabic-calendar-popover{padding:8px}.arabic-calendar-day,.arabic-calendar-empty{min-height:34px}.arabic-calendar-nav{min-width:38px;min-height:38px}}.worker-project-choice{min-height:48px;padding-inline:15px}.worker-project-choices{gap:8px}.deduction-list{padding-block:6px}.deduction-row{border-bottom:1px solid var(--ink-200);grid-template-columns:minmax(0,1fr) auto;gap:7px 14px;padding:14px 4px;display:grid}.deduction-row:last-child{border-bottom:0}.deduction-main{min-width:0}.deduction-worker{overflow-wrap:anywhere;font-weight:800}.deduction-amount{color:var(--red-600);white-space:nowrap;font-weight:800}.deduction-reason{overflow-wrap:anywhere;grid-column:1/-1;line-height:1.65}.deduction-meta{flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;gap:4px 12px;display:flex}.btn{justify-content:center;align-items:center;gap:var(--sp-2);border:1.5px solid var(--ink-200);background:var(--card);color:var(--ink-900);border-radius:var(--r-md);min-height:44px;padding:10px 16px;font-size:16px;font-weight:700;transition:transform 60ms,background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.btn:active{transform:scale(.975)}.btn:disabled{opacity:.55;cursor:not-allowed}.app-icon{flex:none;display:block}.btn-primary{color:var(--ink-950);background:linear-gradient(155deg,#d4af37 0%,#c5a059 40%,#a87e22 100%);border-color:#0000;font-weight:800;box-shadow:0 4px 16px #b8862359}.btn-primary:hover{background:linear-gradient(155deg,#dfbc45 0%,#d4af37 40%,#b58925 100%);box-shadow:0 6px 22px #b8862373}.btn-lg{border-radius:var(--r-md);min-height:52px;font-size:16px}.btn-sm{border-radius:var(--r-sm);min-height:44px;padding:8px 12px;font-size:14px}.btn-block{width:100%}.btn-ghost{color:var(--gold-700);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--gold-50)}.btn-danger{background:var(--red-600);color:#fff;border-color:#0000}.btn-success{background:var(--green-600);color:#fff;border-color:#0000}.btn-hero{border-radius:var(--r-lg);color:#fff;width:100%;min-height:88px;box-shadow:var(--sh-md);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:19px;font-weight:800;transition:transform 80ms,box-shadow .15s;display:flex}.btn-hero:active{transform:scale(.98)}.btn-hero-label{justify-content:center;align-items:center;gap:var(--sp-2);display:inline-flex}.btn-hero small{opacity:.92;font-size:13px;font-weight:600}.btn-hero.primary{color:var(--ink-950);background:linear-gradient(160deg,#d4af37,#a87e22);box-shadow:0 10px 26px #b8862359}.btn-hero.money{background:linear-gradient(160deg, var(--amber-600), var(--amber-700));color:#fff;box-shadow:0 10px 26px #92400e3d}.btn-hero.done{background:linear-gradient(160deg, var(--green-600), var(--green-700));color:#fff}.input,select.input,textarea.input{border:1.5px solid var(--ink-200);border-radius:var(--r-md);background:var(--card);outline:none;width:100%;padding:12px 14px;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--gold-500);box-shadow:0 0 0 4px #c5a0592e}.arabic-date-picker{width:100%;min-width:0;position:relative}.arabic-date-trigger{text-align:start;cursor:pointer;justify-content:space-between;align-items:center;gap:10px;min-height:48px;display:flex}.arabic-date-trigger>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.arabic-date-trigger>.app-icon{color:var(--gold-700);flex:none}.arabic-date-trigger:disabled{cursor:not-allowed;opacity:.6}.arabic-calendar-popover{z-index:300;inset-inline-end:0;width:min(324px,100vw - 24px);color:var(--ink-900);background:var(--card);border:1px solid var(--ink-200);border-radius:var(--r-md);box-shadow:var(--sh-lg);padding:12px;position:absolute;top:calc(100% + 6px)}.arabic-calendar-toolbar{text-align:center;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:4px;margin-bottom:8px;display:grid}.arabic-calendar-toolbar h3{font-size:15px;font-weight:800;line-height:1.4}.arabic-calendar-nav{min-width:42px;min-height:42px;color:var(--ink-800);background:var(--ink-50);border:1px solid var(--ink-200);border-radius:var(--r-sm);place-items:center;font-size:25px;line-height:1;display:inline-grid}.arabic-calendar-nav:hover,.arabic-calendar-day:hover,.arabic-calendar-month:hover{background:var(--gold-100)}.arabic-calendar-grid{text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.arabic-calendar-weekday{min-height:30px;color:var(--ink-500);place-items:center;font-size:11px;font-weight:800;display:grid}.arabic-calendar-empty{min-height:38px}.arabic-calendar-day,.arabic-calendar-month{min-width:0;min-height:38px;color:var(--ink-800);background:0 0;border:1px solid #0000;border-radius:9px;place-items:center;padding:2px;font-size:14px;font-weight:700;display:grid}.arabic-calendar-day.is-today,.arabic-calendar-month.is-today{border-color:var(--gold-500)}.arabic-calendar-day.is-selected,.arabic-calendar-month.is-selected{color:#fff;background:var(--gold-700);border-color:var(--gold-700)}.arabic-calendar-month-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.arabic-calendar-month{min-height:44px;font-size:13px}.arabic-calendar-footer{border-top:1px solid var(--ink-100);justify-content:flex-start;margin-top:8px;padding-top:8px;display:flex}.arabic-calendar-today{min-height:40px;color:var(--blue-600);border-radius:var(--r-sm);padding:4px 12px;font-weight:800}.arabic-calendar-today:hover{background:var(--blue-50)}.owner-attendance-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.owner-attendance-heading .card-title{margin-bottom:4px}.owner-attendance-action{align-items:center;display:flex}.owner-attendance-action .btn{gap:8px;min-height:46px}.owner-attendance-stats{grid-template-columns:repeat(2,minmax(130px,1fr));gap:10px;max-width:520px;margin-top:16px;display:grid}.owner-attendance-stat{background:var(--ink-50);border:1px solid var(--ink-100);border-radius:var(--r-md);justify-content:space-between;align-items:center;gap:12px;min-height:54px;padding:10px 12px;display:flex}.owner-attendance-stat span{color:var(--ink-600);font-size:13px;font-weight:700}.owner-attendance-stat b{color:var(--gold-800);font-size:21px}.owner-attendance-history{color:var(--ink-600);flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;font-size:13px;display:flex}.owner-attendance-empty{margin-top:10px}.owner-attendance-message{margin-top:12px;margin-bottom:0}.search-field{flex:220px;align-items:center;width:100%;min-width:0;display:flex;position:relative}.search-field>.app-icon{z-index:1;color:var(--ink-500);pointer-events:none;position:absolute;inset-inline-start:14px}.search-field>.input{padding-inline-start:42px}.attendance-filters{flex:320px;min-width:0}.attendance-filters .field{flex:150px;min-width:0;max-width:280px}.attendance-filters .field .input{min-width:0}.input-big{text-align:center;padding:var(--sp-4);letter-spacing:-.5px;font-size:28px;font-weight:800}label.field{margin-bottom:var(--sp-3);display:block}label.field>span{color:var(--ink-700);margin-bottom:6px;font-size:14px;font-weight:700;display:block}.stats{gap:var(--sp-3);margin-bottom:var(--sp-4);grid-template-columns:repeat(2,1fr);display:grid}.stat{background:var(--card);border:1px solid var(--ink-200);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);box-shadow:var(--sh-xs)}.stat .label{color:var(--ink-500);margin-bottom:4px;font-size:13px;font-weight:700}.stat .value{letter-spacing:-.3px;font-size:20px;font-weight:800}.stat .value.green{color:var(--green-600)}.stat .value.red{color:var(--red-600)}.stat .value.amber{color:var(--amber-600)}.stat .value.blue{color:var(--blue-600)}.stat .value.teal{color:var(--gold-700)}.badge{border-radius:var(--r-full);white-space:nowrap;align-items:center;gap:4px;padding:3px 10px;font-size:13px;font-weight:700;display:inline-flex}.badge.green{background:var(--green-50);color:#15803d}.badge.red{background:var(--red-50);color:#b91c1c}.badge.amber{background:var(--amber-50);color:#b45309}.badge.blue{background:var(--blue-50);color:#1d4ed8}.badge.gray{background:var(--ink-100);color:var(--ink-700)}.badge.teal{background:var(--gold-100);color:var(--gold-800);border:1px solid #c5a05959}.badge.green.icon-label .app-icon{color:var(--green-600)}.badge.red.icon-label .app-icon{color:var(--red-600)}.badge.amber.icon-label .app-icon{color:var(--amber-700)}.table-wrap{margin:0 calc(-1 * var(--sp-4));padding:0 var(--sp-4);overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;overflow-x:auto}.table-wrap[role=region]:focus-visible{outline:3px solid var(--gold-600);outline-offset:2px}.project-table{min-width:740px}.project-detail-table-workers{min-width:420px}.project-detail-table-attendance{min-width:620px}.project-scroll-hint{margin:0 0 var(--sp-2);display:none}.project-address{white-space:normal;align-items:flex-start}.project-address>span{overflow-wrap:anywhere;min-width:0}.project-row-actions,.project-tabs,.project-detail-tabs,.project-confirm-actions{gap:var(--sp-2)}.project-detail-stat{justify-content:space-between;align-items:center;gap:var(--sp-2);min-width:0;display:flex}.project-detail-stat .icon-label{font-size:13px;line-height:1.45}.project-archive-tips{gap:var(--sp-3);color:var(--ink-700);font-size:14px;line-height:1.75;list-style:none;display:grid}.project-archive-tips li{align-items:start;gap:var(--sp-2);grid-template-columns:20px minmax(0,1fr);display:grid}.project-archive-tips .app-icon{color:var(--green-600);margin-top:3px}.alert.success .icon-label .app-icon{color:var(--green-600)}.stat-row{gap:var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:right;border-bottom:1px solid var(--ink-100);white-space:nowrap;padding:10px 8px}th{color:var(--ink-500);background:var(--ink-50);font-size:12.5px;font-weight:800;position:sticky;top:0}tbody tr:hover{background:var(--ink-50)}tr:last-child td{border-bottom:none}td.num{font-variant-numeric:tabular-nums;font-weight:700}.row{justify-content:space-between;align-items:center;gap:var(--sp-3);border-bottom:1px solid var(--ink-100);padding:11px 0;display:flex}.row:last-child{border-bottom:none}.row .main{font-weight:700}.row .meta{color:var(--ink-500);font-size:13px}.bottom-nav{bottom:0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:2px solid var(--gold-500);z-index:30;padding-bottom:env(safe-area-inset-bottom);background:#121418f5;display:flex;position:fixed;inset-inline:0;box-shadow:0 -4px 20px #0000004d}.bottom-nav a{color:#94a3b8;flex-direction:column;flex:1;align-items:center;gap:3px;padding:9px 4px 11px;font-size:12.5px;font-weight:700;transition:color .15s;display:flex}.bottom-nav a.active{color:var(--gold-400)}.bottom-nav .ico{place-items:center;min-height:24px;line-height:1;display:grid}.has-bottom-nav{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.admin-nav{z-index:15;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch;background:#14161a;border-bottom:1px solid #2d323b;gap:2px;max-width:100%;padding:6px 10px;display:flex;position:relative;top:auto;overflow:auto hidden}.admin-nav::-webkit-scrollbar{display:none}.admin-nav a{border-radius:var(--r-sm);color:#94a3b8;white-space:nowrap;scroll-snap-align:start;border:1px solid #0000;flex:none;align-items:center;gap:7px;min-height:44px;padding:8px 13px;font-size:13px;font-weight:700;line-height:1.3;transition:background .15s,color .15s;display:inline-flex}.admin-nav a:hover{color:#fff;background:#ffffff0f}.admin-nav a.active{color:#f7e6b5;background:linear-gradient(160deg,#d4af3738,#b8862347);border-color:#d4af3773}.muted{color:var(--ink-500)}.small{font-size:13px}.center{text-align:center}.mt{margin-top:var(--sp-4)}.mb{margin-bottom:var(--sp-4)}.flex{align-items:center;gap:var(--sp-3);display:flex}.flex-between{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.grid-2{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.wrap{flex-wrap:wrap}.empty{text-align:center;padding:var(--sp-8) var(--sp-5);color:var(--ink-500)}.empty .big{margin-bottom:var(--sp-3);font-size:40px}.empty-with-icon{align-items:center;gap:var(--sp-2);flex-direction:column;display:flex}.empty-state-icon{color:var(--green-600)}.empty-state-inline{justify-content:center;align-items:center;gap:var(--sp-2);padding:6px 0;display:inline-flex}.empty-state-inline .app-icon{color:var(--ink-400)}.value-with-icon{vertical-align:middle;align-items:center;gap:7px;display:inline-flex}.value-with-icon .app-icon{color:currentColor}.alert{border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-3);border:1px solid #0000;font-size:14px;font-weight:700}.alert.error{background:var(--red-50);color:#b91c1c;border-color:#fecaca}.alert.success{background:var(--green-50);color:#15803d;border-color:#bbf7d0}.alert.info{background:var(--blue-50);color:#1d4ed8;border-color:#bfdbfe}.toast{bottom:96px;inset-inline:var(--sp-4);background:var(--ink-950);border:1px solid var(--gold-500);color:#fff;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);z-index:100;text-align:center;font-weight:700;animation:.22s cubic-bezier(.22,1,.36,1) pop;position:fixed;box-shadow:0 10px 30px #0006}@keyframes pop{0%{opacity:0;transform:translateY(16px)}}.offline-banner{background:var(--amber-500);color:var(--ink-950);text-align:center;padding:7px var(--sp-4);font-size:14px;font-weight:800}.offline-banner-main,.demo-mode-banner{justify-content:center;align-items:center;gap:var(--sp-2);line-height:1.5;display:flex}.offline-banner-main>span{overflow-wrap:anywhere;min-width:0}.offline-banner-warning{justify-items:center;gap:5px;margin-top:6px;line-height:1.55;display:grid}.offline-banner-warning .icon-label{gap:6px}.offline-banner-warning .btn{color:var(--ink-950);border-color:#0d0f123d}.rejected-route-icon,.pending-approval-icon{margin:0 auto var(--sp-3)}.rejected-route-icon{color:var(--red-600)}.pending-approval-icon{color:var(--amber-700)}.site-pill{background:var(--gold-50);color:var(--gold-800);border-radius:var(--r-full);border:1px solid #c5a05959;align-items:center;gap:5px;padding:5px 12px;font-size:13px;font-weight:700;display:inline-flex}.register-card-upload{border:2px dashed var(--ink-200);border-radius:var(--r-md);width:100%;color:inherit;text-align:center;font:inherit;background:0 0;padding:24px 16px;transition:background .15s,border-color .15s,box-shadow .15s;display:block}.register-card-upload:hover,.register-card-upload:focus-visible{border-color:var(--gold-600);background:var(--gold-50)}.register-card-upload.has-image{background:#f8fafc;padding:8px}.register-card-upload img{object-fit:contain;border-radius:8px;width:100%;max-height:180px;display:block}.register-card-upload-icon{color:var(--gold-700);margin:0 auto}.register-card-upload-prompt{margin-top:var(--sp-3);display:block}.register-upload-selected{margin-top:var(--sp-3);flex-wrap:wrap;justify-content:center;align-items:center;gap:7px;display:flex}.register-upload-selected .app-icon{color:var(--green-600)}@media (width>=700px){.stats{grid-template-columns:repeat(4,1fr)}.page{padding:var(--sp-6) var(--sp-5)}.auth{padding:var(--sp-8)}}@media (width<=699px){.grid-2{grid-template-columns:1fr}.project-scroll-hint{display:block}}@media print{.topbar,.bottom-nav,.admin-nav,.btn{display:none!important}.card{box-shadow:none;border:none}body{background:#fff}}.auth-register{min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));justify-content:flex-start;align-items:flex-start;overflow:hidden auto}.auth-login{min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) 18px max(24px, env(safe-area-inset-bottom));justify-content:center;overflow:hidden auto}.auth-login .auth-bg{position:fixed}.auth-login .auth-card{margin:auto}.remember-row{border:1px solid var(--ink-200);border-radius:var(--r-md);background:var(--card);cursor:pointer;align-items:center;gap:10px;padding:10px 12px;display:flex}.remember-row input{width:18px;height:18px;accent-color:var(--gold-700);flex:0 0 18px;margin:0}.remember-copy{gap:2px;min-width:0;display:grid}.remember-copy strong{color:var(--ink-800);font-size:14px}.remember-copy small{color:var(--ink-500);font-size:12.5px;line-height:1.5}.brand-splash{--splash-gold:#d7b66c;z-index:2000;min-height:100dvh;padding:max(22px, env(safe-area-inset-top)) 18px max(22px, env(safe-area-inset-bottom));isolation:isolate;color:#fff;background:radial-gradient(390px 310px at 50% 42%,#d7b66c18,#0000 72%),linear-gradient(#08090b 0%,#111216 56%,#08090b 100%);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.brand-splash:before{z-index:-1;content:"";pointer-events:none;background:radial-gradient(#0000 28%,#00000080 100%);position:absolute;inset:0}.brand-splash__aura{aspect-ratio:1;pointer-events:none;border:1px solid #d7b66c0b;border-radius:50%;width:min(88vw,460px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 90px #d7b66c0b,inset 0 0 90px #d7b66c06}.brand-splash__content{text-align:center;flex-direction:column;align-items:center;width:min(100%,360px);display:flex;transform:translateY(-1vh)}.brand-splash__emblem{aspect-ratio:1;place-items:center;width:clamp(148px,40vw,172px);margin-bottom:clamp(13px,3.5vh,24px);display:grid;position:relative}.brand-splash__ring{opacity:0;border:1px solid #d7b66c3d;border-radius:50%;animation:.9s ease-out 80ms both splash-ring-in;position:absolute;inset:5%;box-shadow:inset 0 0 42px #d7b66c0b,0 0 34px #d7b66c0f}.brand-splash__ring:before{content:"";border:1px solid #ffffff0e;border-radius:50%;position:absolute;inset:8%}.brand-splash__spark{z-index:3;opacity:0;background:#f2d996;border-radius:50%;width:5px;height:5px;animation:.45s ease-out .78s both splash-spark-in;position:absolute;top:15%;right:21%;box-shadow:0 0 16px 4px #e7c77c47}.brand-splash__shield{z-index:2;filter:drop-shadow(0 9px 22px #d7b66c36);opacity:0;animation:.9s cubic-bezier(.2,.78,.24,1) .12s both splash-mark-in;position:relative;overflow:visible!important}.brand-splash__wordmark{justify-items:center;gap:5px;display:grid}.brand-splash__name{color:#fff;letter-spacing:0;text-shadow:0 2px 24px #d7b66c26;white-space:nowrap;opacity:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:clamp(21px,6vw,29px);font-weight:800;line-height:1.35;animation:.72s cubic-bezier(.22,1,.36,1) 1.05s both splash-name-in;transform:translateY(12px)}.brand-splash__subtitle{color:#e7cf99db;letter-spacing:0;text-indent:0;text-align:center;opacity:0;font-family:system-ui,sans-serif;font-size:12px;font-weight:600;animation:.6s ease-out 1.28s both splash-name-in;transform:translateY(7px)}.brand-splash__loading{opacity:0;background:#d7b66c2e;border-radius:999px;width:46px;height:2px;margin-top:clamp(28px,6vh,40px);animation:.35s ease-out 1.32s both splash-loader-in;position:relative;overflow:hidden}.brand-splash__loading span{inset-block:0;border-radius:inherit;background:linear-gradient(90deg,#0000,#f1d58f,#0000);width:38%;animation:1.1s ease-in-out 1.32s infinite splash-loader-pass;position:absolute;left:-45%;box-shadow:0 0 12px #d7b66ca6}.brand-splash.is-leaving{pointer-events:none;animation:.48s ease-in forwards brand-splash-out}@keyframes splash-ring-in{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}@keyframes splash-mark-in{0%{opacity:0;filter:blur(7px);transform:translateY(10px)scale(.82)}72%{opacity:1;filter:blur();transform:translateY(-2px)scale(1.035)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes splash-spark-in{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes splash-name-in{to{opacity:1;transform:translateY(0)}}@keyframes splash-loader-in{to{opacity:1}}@keyframes splash-loader-pass{to{transform:translate(360%)}}@keyframes brand-splash-out{to{opacity:0;visibility:hidden}}@media (width<=480px){.auth-login{min-height:100dvh;padding:max(18px, env(safe-area-inset-top)) 14px max(18px, env(safe-area-inset-bottom));justify-content:flex-start;overflow:hidden auto}.auth-login .auth-card{margin:auto;padding:22px 18px}.auth-login .auth-brand{margin-bottom:18px}.remember-row{align-items:flex-start}.topbar{gap:8px;padding:8px 10px}.topbar>div:first-child>div{min-width:0}.topbar h1{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.topbar .sub{white-space:nowrap;text-overflow:ellipsis;max-width:43vw;font-size:12px;overflow:hidden}.role-chip{padding:3px 7px;font-size:12px}.admin-nav{gap:3px;padding-inline:7px}.admin-nav a{padding:7px 10px;font-size:13px}}@media (prefers-reduced-motion:reduce){.brand-splash *,.brand-splash:before,.brand-splash:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
