*{box-sizing:border-box}html{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;color:#172033;background:#f4f7fb}body{margin:0;min-height:100vh}button,input{font:inherit}.login-page{background:linear-gradient(135deg,#eef4fb 0%,#f8fafc 46%,#eef3f8 100%)}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1fr) minmax(420px,0.82fr)}.brand-panel{padding:clamp(48px,7vw,96px);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;background:linear-gradient(145deg,#17324d 0%,#244965 58%,#315e76 100%);color:#fff}.brand-panel:after{content:"";position:absolute;width:460px;height:460px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-180px;bottom:-180px;box-shadow:0 0 0 80px rgba(255,255,255,.025),0 0 0 160px rgba(255,255,255,.02)}.brand-mark{display:flex;gap:8px;margin-bottom:36px}.brand-mark span{display:block;width:12px;border-radius:8px;background:rgba(255,255,255,.92)}.brand-mark span:nth-child(1){height:30px}.brand-mark span:nth-child(2){height:44px;margin-top:-14px}.brand-mark span:nth-child(3){height:22px;margin-top:8px}.brand-kicker{margin:0 0 8px;font-size:12px;letter-spacing:.22em;font-weight:700;color:rgba(255,255,255,.65)}.brand-panel h1{margin:0;font-size:clamp(44px,5vw,72px);letter-spacing:-.04em;font-weight:730}.brand-copy{margin:24px 0 0;max-width:560px;font-size:clamp(18px,2vw,24px);line-height:1.7;color:rgba(255,255,255,.86)}.brand-points{display:flex;gap:10px;flex-wrap:wrap;padding:0;margin:42px 0 0;list-style:none;position:relative;z-index:1}.brand-points li{padding:8px 13px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(255,255,255,.07);font-size:13px;color:rgba(255,255,255,.82)}.login-card{display:flex;flex-direction:column;justify-content:center;padding:clamp(30px,6vw,86px);background:rgba(255,255,255,.84);backdrop-filter:blur(10px)}.login-card-inner{width:min(100%,460px);margin:auto}.eyebrow{margin:0 0 8px;font-size:12px;font-weight:750;letter-spacing:.18em;color:#547086}.login-card h2{font-size:32px;letter-spacing:-.03em;margin:0;color:#172033}.login-lead{margin:12px 0 28px;color:#667386;line-height:1.7}.notice{margin:0 0 20px;padding:13px 15px;border-radius:10px;background:#fff4e8;border:1px solid #f0d3b4;color:#7e4c22;font-size:14px;line-height:1.6}form{display:grid;gap:10px}label{font-size:13px;font-weight:700;color:#3d4a5b}input[type=email],input[type=text]{width:100%;height:52px;padding:0 15px;border:1px solid #cfd8e3;border-radius:11px;background:#fff;color:#172033;outline:none;transition:border .16s,box-shadow .16s}input[type=email]:focus,input[type=text]:focus{border-color:#597a92;box-shadow:0 0 0 4px rgba(63,102,131,.1)}input::placeholder{color:#a1acba}.otp-input{text-align:center;font-size:28px;font-weight:760;letter-spacing:.28em;font-variant-numeric:tabular-nums}.check-row{display:flex;align-items:center;gap:10px;margin:8px 0 0;font-weight:600;cursor:pointer}.check-row input{width:18px;height:18px;accent-color:#244965}.back-link{margin:20px 0 0;font-size:13px}.back-link a{color:#365f7a;text-decoration:none}.back-link a:hover{text-decoration:underline}button{height:52px;margin-top:8px;border:0;border-radius:11px;background:#213f58;color:#fff;font-weight:730;letter-spacing:.02em;cursor:pointer;box-shadow:0 8px 20px rgba(33,63,88,.16);transition:transform .14s,background .14s,box-shadow .14s}button:hover:not(:disabled){background:#18364f;transform:translateY(-1px);box-shadow:0 10px 24px rgba(33,63,88,.2)}button:disabled{cursor:not-allowed;background:#aab5bf;box-shadow:none}.helper{font-size:12px;color:#7b8796;line-height:1.6;margin:12px 0 0}.security-note{display:flex;gap:10px;margin-top:28px;padding-top:22px;border-top:1px solid #e4e9ef;color:#697687}.security-note>span{display:grid;place-items:center;flex:0 0 22px;height:22px;border-radius:50%;background:#e7f1ed;color:#2e6a54;font-weight:800;font-size:12px}.security-note p{margin:0;font-size:12px;line-height:1.75}.login-card footer{width:min(100%,460px);margin:38px auto 0;display:flex;justify-content:space-between;font-size:11px;color:#9aa4b1}.simple-page{display:grid;place-items:center;background:#f5f7fa}.simple-page main{width:min(90vw,560px);padding:48px;background:#fff;border:1px solid #e2e7ed;border-radius:16px;box-shadow:0 18px 48px rgba(39,53,69,.08)}.simple-page h1{font-size:48px;margin:0 0 12px}.simple-page p{color:#667386}.simple-page a{color:#244965}.app-page{background:#f4f7fb}.app-shell{min-height:100vh;display:grid;place-items:center;padding:28px}.app-card{width:min(100%,620px);background:#fff;border:1px solid #e2e7ed;border-radius:18px;padding:34px;box-shadow:0 18px 48px rgba(39,53,69,.08)}.app-card h1{margin:0 0 10px;font-size:28px}.app-card>p:not(.eyebrow){color:#697687;margin:0 0 24px}.tenant-list{display:grid;gap:10px}.tenant-option{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #d8e0e8;border-radius:12px;background:#fafcfd;cursor:pointer}.tenant-option:has(input:checked){border-color:#66869d;background:#edf4f8}.tenant-option input{width:18px;height:18px;accent-color:#244965}.app-header{height:66px;padding:0 clamp(20px,4vw,56px);display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid #e2e7ed;position:sticky;top:0}.app-header>div{display:flex;align-items:baseline;gap:14px}.app-header strong{font-size:18px}.app-header span{font-size:12px;color:#728092}.app-header form{display:block}.secondary-button{height:38px;margin:0;padding:0 15px;background:#eef3f6;color:#29485e;box-shadow:none;font-size:12px}.dashboard{width:min(1440px,calc(100% - 28px));margin:32px auto 60px;display:grid;gap:20px}.welcome-card{padding:30px;background:#fff;border:1px solid #e2e7ed;border-radius:16px}.welcome-card h1{margin:0 0 8px;font-size:30px}.welcome-card>p:not(.eyebrow){margin:0;color:#697687}.welcome-card dl{display:flex;gap:32px;flex-wrap:wrap;margin:26px 0 0;padding-top:20px;border-top:1px solid #e8edf1}.welcome-card dl div{min-width:170px}.welcome-card dt{font-size:11px;font-weight:700;color:#84909c}.welcome-card dd{margin:5px 0 0;font-weight:700}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.module-card{padding:22px;background:#fff;border:1px solid #e2e7ed;border-radius:14px;display:flex;justify-content:space-between;align-items:center;text-decoration:none;color:#172033;transition:border-color .15s,transform .15s,box-shadow .15s}.module-card[href]:hover{border-color:#b9c9d4;transform:translateY(-1px);box-shadow:0 10px 24px rgba(39,53,69,.06)}.module-grid span{font-weight:700}.module-grid strong{font-size:11px;color:#557287;background:#edf3f7;padding:5px 8px;border-radius:999px}.admin-header{gap:20px}.brand-line a{text-decoration:none;color:#172033}.app-nav{display:flex;align-items:center;gap:6px;margin-left:auto}.app-nav a{padding:9px 12px;border-radius:9px;color:#627184;text-decoration:none;font-size:13px;font-weight:650}.app-nav a:hover,.app-nav a.active{background:#edf3f7;color:#1e4059}.admin-main{width:min(1440px,calc(100% - 28px));margin:30px auto 60px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:20px}.page-heading h1{font-size:30px;margin:0 0 6px}.page-heading p:not(.eyebrow){margin:0;color:#697687}.admin-grid{display:grid;gap:16px}.two-columns{grid-template-columns:minmax(280px,.7fr) minmax(520px,1.3fr)}.panel{background:#fff;border:1px solid #e2e7ed;border-radius:16px;padding:24px;margin-bottom:16px}.panel h2{font-size:18px;margin:0 0 18px}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.panel-title h2{margin:0}.panel-title>span{font-size:12px;color:#7b8796;background:#f1f4f7;padding:5px 9px;border-radius:999px}.panel select{width:100%;height:52px;padding:0 13px;border:1px solid #cfd8e3;border-radius:11px;background:#fff;color:#172033}.field-help{font-size:11px;color:#8693a0;margin:0 0 4px;line-height:1.5}.worker-form{grid-template-columns:repeat(4,minmax(150px,1fr));align-items:start;gap:14px}.worker-form>div{display:grid;gap:8px}.worker-form .form-action{align-self:end}.worker-form .form-action button{width:100%}.table-scroll{overflow:auto;border:1px solid #edf0f3;border-radius:12px}table{width:100%;border-collapse:collapse;min-width:620px}th,td{text-align:left;padding:13px 14px;border-bottom:1px solid #edf0f3;font-size:13px;vertical-align:middle}th{font-size:11px;letter-spacing:.04em;color:#768493;background:#f8fafb;white-space:nowrap}tbody tr:last-child td{border-bottom:0}.empty-cell{text-align:center;color:#8995a2;padding:32px}.status-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#f0f2f4;color:#697687;font-size:11px;font-weight:700}.status-badge.active{background:#e8f4ee;color:#2c6b52}.mono{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-variant-numeric:tabular-nums}.small{font-size:11px}code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;background:#f3f6f8;padding:3px 6px;border-radius:6px;color:#3c5568}.pairing-card{margin:0 0 16px;padding:24px;border-radius:16px;background:#183d57;color:#fff}.pairing-card>p{margin:0 0 12px;color:rgba(255,255,255,.76);font-size:13px}.pair-code{font-size:34px;font-weight:800;letter-spacing:.22em;line-height:1.2}.pairing-card dl{display:flex;gap:26px;margin:18px 0 0}.pairing-card dt{font-size:10px;color:rgba(255,255,255,.6);font-weight:700}.pairing-card dd{margin:4px 0 0;font-size:13px;font-weight:700}.inline-form{display:block}.danger-button{height:34px;margin:0;padding:0 10px;background:#fff1f1;color:#8c3838;border:1px solid #efd0d0;box-shadow:none;font-size:11px}.danger-button:hover:not(:disabled){background:#ffe9e9;color:#792c2c;box-shadow:none}.row-sub{display:inline-block;margin-top:4px;font-size:9px;color:#97a2ad}.attendance-main{width:min(1440px,calc(100% - 28px))}.attendance-heading{gap:22px}.month-nav{display:flex;align-items:center;gap:12px;white-space:nowrap}.month-nav a,.back-button{display:inline-flex;align-items:center;justify-content:center;padding:9px 12px;border-radius:9px;border:1px solid #d7e0e7;background:#fff;color:#36566c;text-decoration:none;font-size:12px;font-weight:700}.month-nav strong{min-width:100px;text-align:center}.attendance-filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px}.attendance-filter-bar label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:#617184}.attendance-filter-bar select,.attendance-filter-bar input[type=search]{height:34px;border:1px solid #cfd8e3;border-radius:9px;background:#fff;color:#172033;outline:none}.attendance-filter-bar select{min-width:160px;padding:0 30px 0 10px}.attendance-filter-bar [data-attendance-subject-filter]{min-width:108px}.attendance-filter-bar input[type=search]{width:260px;padding:0 10px}.attendance-filter-bar select:focus,.attendance-filter-bar input[type=search]:focus{border-color:#597a92;box-shadow:0 0 0 3px rgba(63,102,131,.09)}.attendance-filter-count{font-size:11px;color:#7b8796;white-space:nowrap}.attendance-legend{display:flex;gap:18px;align-items:center;margin:0 0 12px;font-size:11px;color:#758291}.attendance-legend span{display:inline-flex;align-items:center;gap:7px}.site-dot,.review-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#5a89a5;flex:0 0 7px}.review-dot{background:#c58a40}.attendance-panel{padding:0;overflow:hidden}.attendance-table-wrap{overflow:auto;max-height:calc(100vh - 220px)}.attendance-table{border-collapse:separate;border-spacing:0;min-width:max-content}.attendance-table th,.attendance-table td{padding:0;border-right:1px solid #edf0f3;border-bottom:1px solid #edf0f3;background:#fff}.attendance-table thead th{position:sticky;top:0;z-index:3;background:#f7f9fb}.attendance-table .sticky-worker{position:sticky;left:0;z-index:2;min-width:164px;max-width:164px;background:#fff}.attendance-table thead .sticky-worker{z-index:5;background:#f7f9fb}.attendance-worker-head{text-align:center!important}.attendance-table .sticky-summary{position:sticky;left:164px;z-index:2;min-width:96px;max-width:96px;background:#fff}.attendance-table thead .sticky-summary{z-index:5;background:#f7f9fb}.attendance-summary-head{padding:7px 4px!important;text-align:center!important}.attendance-summary-cell{padding:8px 6px!important;text-align:center!important}.attendance-summary-cell strong,.attendance-summary-cell small{display:block}.attendance-summary-cell strong{font-size:12px;font-variant-numeric:tabular-nums;color:#263c4f}.attendance-summary-cell small{margin-top:3px;font-size:9px;color:#82909c}.worker-cell{padding:10px 12px!important}.worker-cell strong,.worker-cell span,.worker-cell small{display:block}.worker-cell strong{font-size:12px}.worker-cell span{margin-top:3px;font-size:9px;color:#8793a0;font-family:"SFMono-Regular",Consolas,monospace}.worker-cell small{margin-top:5px;font-size:9px;color:#82909c;font-weight:500}.day-head{width:96px;min-width:96px;text-align:center!important;padding:7px 4px!important}.day-head span{display:block;font-size:12px;color:#33475a}.day-head small{font-size:9px;color:#8995a1}.day-head.weekend{background:#f8f9fb}.day-head.today{box-shadow:inset 0 -2px #65869d}.attendance-cell{width:96px;min-width:96px;height:54px;position:relative}.attendance-cell>a,.attendance-cell>.attendance-cell-static{min-height:54px;padding:8px 7px;display:flex;align-items:center;justify-content:center;gap:5px;color:#20374a;text-decoration:none;background:#fff}.attendance-cell>a:hover{background:#f1f6f9}.attendance-cell.empty{background:#fcfdfe}.time-range{font-size:10px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.cell-markers{display:inline-flex;gap:3px;align-items:center}.attendance-cell.has-site-note>a{background:#f7fbfd}.attendance-cell.has-review>a{box-shadow:inset 0 -2px rgba(197,138,64,.35)}.attendance-detail-modal{width:min(1060px,calc(100vw - 32px));max-width:1060px;max-height:92vh;padding:0;border:0;border-radius:14px;background:#fff;box-shadow:0 24px 70px rgba(23,32,51,.24);overflow:hidden}.attendance-detail-modal::backdrop{background:rgba(23,32,51,.38)}.attendance-modal-detail{position:relative;padding:16px 18px;max-height:92vh;overflow:auto}.attendance-modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}.attendance-modal-heading h2{margin:0 0 3px;font-size:22px}.attendance-modal-heading p:not(.eyebrow){margin:0;color:#697687;font-size:11px}.attendance-modal-close{flex:0 0 34px;width:34px;height:34px;margin:0;padding:0;border-radius:9px;background:#eef3f6;color:#29485e;box-shadow:none;font-size:20px;line-height:1}.attendance-modal-close:hover:not(:disabled){background:#e3ebf0;transform:none;box-shadow:none}.attendance-modal-message{padding:36px 24px;text-align:center;color:#697687;font-size:13px}.attendance-modal-detail .panel{padding:14px 16px;margin-bottom:0}.attendance-detail-actions{display:flex;align-items:center;gap:8px}.attendance-detail-actions .detail-count{font-size:11px;color:#7b8796;background:#f1f4f7;padding:4px 8px;border-radius:999px}.attendance-add-open{height:32px;padding:0 11px}.attendance-add-layer[hidden]{display:none}.attendance-add-layer{position:absolute;inset:0;z-index:8;display:grid;place-items:center;padding:18px;background:rgba(23,32,51,.32)}.attendance-add-card{width:min(430px,100%);padding:18px;background:#fff;border:1px solid #dde5eb;border-radius:13px;box-shadow:0 18px 48px rgba(23,32,51,.2)}.attendance-add-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.attendance-add-heading h3{margin:0;font-size:20px}.attendance-add-close{width:32px;height:32px;margin:0;padding:0;background:#eef3f6;color:#29485e;box-shadow:none;font-size:19px}.attendance-add-form{gap:9px}.attendance-add-form label{display:grid;gap:6px}.attendance-add-form select,.attendance-add-form input{width:100%;height:40px;padding:0 11px;border:1px solid #cfd8e3;border-radius:9px;background:#fff;color:#172033}.attendance-add-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}.attendance-add-buttons button{height:40px;margin:0}.status-badge.manual-added{background:#eef3fb;color:#436280}.day-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.summary-box{padding:13px 14px;background:#fff;border:1px solid #e2e7ed;border-radius:11px}.summary-box span,.summary-box strong{display:block}.summary-box span{font-size:10px;color:#7f8b97;margin-bottom:4px}.summary-box strong{font-size:16px}.info-note,.review-note{display:flex;align-items:flex-start;gap:8px;padding:9px 12px;border-radius:9px;margin:0 0 8px;background:#eef6fa;color:#355a70;font-size:11px;line-height:1.5}.review-note{background:#fff6e9;color:#7b5627}.info-note i,.review-note i{margin-top:4px}.detail-table{min-width:900px}.detail-table th,.detail-table td{padding:9px 10px;text-align:center}.detail-table .adjust-reason{text-align:left}.raw-time{display:block;margin-top:3px;font-size:9px;color:#8995a2;font-weight:500}.status-badge.adjusted{background:#eef3fb;color:#436280}.reason-cell{max-width:190px;color:#697687;font-size:10px}.event-edit-actions{display:flex;align-items:center;gap:6px;min-width:334px}.adjust-form{display:grid;grid-template-columns:68px minmax(130px,1fr) 52px;gap:5px;align-items:center;min-width:275px}.adjust-form input{height:32px;border-radius:8px;padding:0 8px;border:1px solid #d4dde5;background:#fff;color:#26384a}.adjust-time{text-align:center}.small-button{height:32px;margin:0;padding:0 8px;border-radius:8px;font-size:11px;box-shadow:none}.attendance-delete-form{display:block;margin:0}.delete-event-button{min-width:48px;background:#fff1f1;color:#8c3838;border:1px solid #efd0d0;box-shadow:none}.delete-event-button:hover:not(:disabled){background:#ffe9e9;color:#792c2c;transform:none;box-shadow:none}.panel-footnote{margin:8px 2px 0;color:#84909c;font-size:9px;line-height:1.5}.review-filter{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}.review-filter a{padding:7px 11px;border:1px solid #d9e1e8;border-radius:9px;background:#fff;color:#526579;text-decoration:none;font-size:11px;font-weight:700}.review-filter a.active{background:#eef4f7;border-color:#aebfca;color:#27475c}.review-panel{padding:16px}.review-table{min-width:980px}.review-table th,.review-table td{text-align:center}.review-status{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:700;white-space:nowrap}.review-status-open{background:#fff1dd;color:#7d5522}.review-status-confirmed{background:#eef4f8;color:#42667c}.review-status-resolved{background:#eef5ef;color:#4d6c55}.review-actions{display:flex;align-items:center;justify-content:center;gap:6px;min-width:220px}.review-actions form,.review-actions{margin:0}.review-resolve-form{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:nowrap;white-space:nowrap;margin:0}.review-note-input{width:138px;height:34px;padding:0 8px;border:1px solid #d4dde5;border-radius:8px;background:#fff;font-size:10px}.site-table th,.site-table td{text-align:center;vertical-align:middle}.site-summary-table{width:100%;min-width:0;table-layout:auto}.site-summary-table th,.site-summary-table td{padding-left:8px;padding-right:8px}.site-count-cell{white-space:nowrap}.site-count-cell a{display:inline-flex;align-items:baseline;justify-content:center;gap:3px;min-width:52px;padding:5px 7px;border-radius:8px;background:#f4f7f9;color:#35566e;text-decoration:none}.site-count-cell a:hover{background:#eaf0f4}.site-count-cell strong{font-size:15px;color:#203d53}.site-count-cell span{font-size:9px;color:#7b8793}.site-scope-badge{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:4px 7px;border-radius:999px;background:#eef3f6;color:#536b7c;font-size:9px;font-weight:750;white-space:nowrap}.site-scope-both{background:#eaf3f8;color:#355f79}.site-scope-worker{background:#f1f3f5;color:#55616c}.site-scope-participant{background:#edf6f2;color:#356954}.site-table .inline-edit-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 64px;align-items:center;gap:6px;width:100%;max-width:350px;min-width:0;margin:0 auto}.site-table .inline-edit-form input[type=text]{grid-column:1/-1;width:100%;min-width:0;max-width:none;height:36px;padding:0 9px;border-radius:9px}.site-table .inline-edit-form select{width:100%;min-width:0;height:36px;padding:0 24px 0 8px;border-radius:9px}.site-table .inline-edit-form .small-button{width:64px;height:36px;margin:0}.worker-table{min-width:1080px}.worker-table th,.worker-table td{text-align:center;vertical-align:middle;padding:9px 10px}.worker-table td:nth-child(1){width:90px}.worker-table td:nth-child(2){min-width:650px}.worker-table td:nth-child(3){min-width:360px;white-space:nowrap}.worker-table .worker-edit-form{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:nowrap;margin:0}.worker-table .worker-edit-form input[type=text]{width:180px;flex:0 1 180px;height:38px;padding:0 10px;border-radius:9px}.worker-table .worker-edit-form select{width:auto;min-width:115px;max-width:150px;height:38px;padding:0 28px 0 10px;border-radius:9px}.worker-table .worker-edit-form select[name=site_id]{min-width:130px;max-width:170px}.worker-table .worker-edit-form select[name=status]{min-width:100px;max-width:110px}.worker-table .worker-edit-form .small-button{width:72px;flex:0 0 72px;height:38px;margin:0}.worker-table .card-inline-form,.worker-table .card-add-form{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin:0 6px 0 0;vertical-align:middle}.worker-table .card-inline-form code{white-space:nowrap}.worker-table .card-inline-form .small-button{height:34px;margin:0;padding:0 10px}.worker-table .card-add-form input[type=text]{width:160px;height:38px;padding:0 10px;border-radius:9px}.worker-table .card-add-form .small-button{width:64px;height:38px;margin:0}.terminal-table th,.terminal-table td{text-align:center;vertical-align:middle}.terminal-table td:first-child strong{display:inline-block;text-align:center}.terminal-table td:nth-child(4){white-space:nowrap}.settings-panel{padding:18px 20px}.settings-form{grid-template-columns:repeat(2,minmax(260px,1fr));gap:12px 16px;align-items:start}.settings-form>div:not(.form-action){display:grid;gap:5px;min-width:0}.settings-form input[type=text],.settings-form input[type=number],.settings-form select{width:100%;height:38px;padding:0 10px;border:1px solid #cfd8e3;border-radius:9px;background:#fff;color:#172033;outline:none}.settings-form input[type=text]:focus,.settings-form input[type=number]:focus,.settings-form select:focus{border-color:#597a92;box-shadow:0 0 0 3px rgba(63,102,131,.09)}.settings-form .field-help{margin:-1px 0 0;font-size:10px;line-height:1.4}.settings-form .check-row{margin:0;min-height:38px;padding:6px 2px;gap:8px}.settings-form .check-row input{flex:0 0 16px;width:16px;height:16px}.settings-form .check-row span{display:flex;align-items:center;gap:7px;min-width:0}.settings-form .check-row strong{font-size:12px;white-space:nowrap}.settings-form .check-row small{font-size:10px;color:#7d8995;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-form .form-action{grid-column:1/-1;display:flex;justify-content:flex-end;margin-top:2px}.settings-form .form-action button{width:160px;height:38px;margin:0}
.settings-page{max-width:1440px}
.settings-layout{display:grid;gap:14px}
.settings-form-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.settings-form-sections>.settings-card{height:100%}
.settings-card{min-width:0;padding:16px 18px;background:#fff;border:1px solid #dde5eb;border-radius:13px}
.settings-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:13px;padding-bottom:10px;border-bottom:1px solid #edf1f4}
.settings-card-head h2{margin:0;font-size:17px;line-height:1.3}
.settings-card-head p{margin:3px 0 0;color:#778491;font-size:10px;line-height:1.45}
.settings-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;align-items:start}
.settings-field{display:grid;gap:5px;min-width:0}
.settings-field-wide{grid-column:1/-1}
.settings-field>label,.settings-card label:not(.settings-toggle):not(.remember-period-option){font-size:11px;font-weight:700;color:#283b4f}
.settings-card input[type=text],.settings-card input[type=number],.settings-card select{width:100%;height:40px;padding:0 10px;border:1px solid #cfd8e3;border-radius:9px;background:#fff;color:#172033;outline:none}
.settings-card input[type=text]:focus,.settings-card input[type=number]:focus,.settings-card select:focus{border-color:#597a92;box-shadow:0 0 0 3px rgba(63,102,131,.09)}
.settings-card .field-help{margin:0;color:#8995a1;font-size:9px;line-height:1.4}
.settings-toggle{display:flex;align-items:flex-start;gap:9px;min-height:52px;margin:0;padding:10px 11px;border:1px solid #e1e7ec;border-radius:10px;background:#fafcfd;cursor:pointer}
.settings-toggle:hover{background:#f6f9fb}
.settings-toggle input{flex:0 0 17px;width:17px;height:17px;margin-top:2px}
.settings-toggle span{display:grid;gap:2px;min-width:0}
.settings-toggle strong{font-size:11px;line-height:1.35}
.settings-toggle small{color:#7e8a96;font-size:9px;line-height:1.4}
.remember-period-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.remember-period-option{position:relative;display:block;min-width:0;margin:0;cursor:pointer}
.remember-period-option input{position:absolute;opacity:0;pointer-events:none}
.remember-period-option span{display:grid;gap:2px;min-height:58px;padding:10px 12px;border:1px solid #dbe3e9;border-radius:10px;background:#fafcfd}
.remember-period-option strong{font-size:13px;color:#29485e}
.remember-period-option small{font-size:9px;color:#82909b}
.remember-period-option input:checked+span{border-color:#5e7e95;background:#edf4f8;box-shadow:inset 0 0 0 1px #5e7e95}
.settings-note{margin:9px 2px 0;color:#7e8a96;font-size:9px;line-height:1.5}
.settings-save{grid-column:1/-1;display:flex;justify-content:flex-end;padding:0 2px}
.settings-save button{width:180px;height:40px;margin:0}
.remembered-devices-card{padding-bottom:12px}
.settings-count{flex:0 0 auto;padding:4px 8px;border-radius:999px;background:#eef3f6;color:#526779;font-size:10px;font-weight:700}
.settings-empty{padding:20px 12px;text-align:center;color:#7e8a96;font-size:11px}
.remembered-device-table{min-width:1120px}
.remembered-device-table th,.remembered-device-table td{padding:9px 10px;text-align:center;vertical-align:middle}
.remembered-device-table td:first-child{text-align:left;min-width:150px}
.remembered-device-table td:nth-child(2){text-align:left;min-width:190px}
.remembered-device-table form{margin:0}
.remembered-device-table .small-button{min-width:86px}
@media(max-width:1100px){
  .settings-form-sections{grid-template-columns:1fr}
  .remember-period-options{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .settings-card-grid{grid-template-columns:1fr}
  .settings-field-wide{grid-column:auto}
  .remember-period-options{grid-template-columns:1fr 1fr}
  .settings-save button{width:100%}
}.platform-tenant-table{width:100%}.platform-tenant-table th,.platform-tenant-table td{text-align:center;vertical-align:middle}.platform-tenant-table th:first-child,.platform-tenant-table td:first-child{text-align:left}.platform-tenant-table form{display:flex;justify-content:center;margin:0}.platform-tenant-name-cell{min-width:210px}.platform-tenant-name-line{display:flex;align-items:center;gap:8px;min-width:0}.platform-tenant-name-line strong{min-width:0}.platform-name-edit{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;height:auto;min-height:0;margin:0;padding:2px 6px;border:0;border-radius:6px;background:#eef3f6;color:#657789;box-shadow:none;font-size:9px;font-weight:700;letter-spacing:0}.platform-name-edit:hover:not(:disabled){background:#e2ebf0;color:#29485e;transform:none;box-shadow:none}.platform-profile-edit{display:inline-flex;align-items:center;gap:6px;height:auto;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:#244965;box-shadow:none;font-size:13px;font-weight:700;letter-spacing:0}.platform-profile-edit:hover:not(:disabled){background:transparent;color:#18364f;transform:none;box-shadow:none}.platform-profile-edit-mark{padding:2px 5px;border-radius:6px;background:#eef3f6;color:#657789;font-size:9px;font-weight:700}.platform-profile-modal{width:min(440px,calc(100vw - 32px));max-width:440px;padding:0;border:0;border-radius:14px;background:#fff;box-shadow:0 24px 70px rgba(23,32,51,.24)}.platform-profile-modal::backdrop{background:rgba(23,32,51,.38)}.platform-profile-form{padding:20px;gap:12px}.platform-profile-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.platform-profile-heading h2{margin:0;font-size:21px}.platform-profile-heading p:not(.eyebrow){margin:4px 0 0;color:#697687;font-size:12px}.platform-profile-close{flex:0 0 34px;width:34px;height:34px;margin:0;padding:0;border-radius:9px;background:#eef3f6;color:#29485e;box-shadow:none;font-size:20px;line-height:1}.platform-profile-close:hover:not(:disabled){background:#e3ebf0;transform:none;box-shadow:none}.platform-profile-form select,.platform-name-form input[type=text]{width:100%;height:46px;padding:0 12px;border:1px solid #cfd8e3;border-radius:10px;background:#fff;color:#172033;outline:none}.platform-profile-form select:focus,.platform-name-form input[type=text]:focus{border-color:#597a92;box-shadow:0 0 0 3px rgba(63,102,131,.09)}.platform-profile-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}.platform-profile-actions button{height:42px;margin:0}.platform-profile-error{margin:0;padding:9px 11px;border-radius:9px;background:#fff1f1;color:#8c3838;font-size:11px}
.platform-line-card{margin:0 0 14px}
.platform-line-card>.panel-title{align-items:flex-start;gap:14px}
.platform-line-card>.panel-title>div{min-width:0}
.platform-line-card>.panel-title h2{margin:0 0 3px}
.platform-line-card>.panel-title p{margin:0;color:#778491;font-size:10px;line-height:1.45}
.platform-line-form{display:grid;gap:11px;margin:0}
.platform-line-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px}
.platform-line-grid label{display:grid;gap:5px;min-width:0;margin:0}
.platform-line-grid label>span{font-size:10px;font-weight:750;color:#435668}
.platform-line-grid input{width:100%;height:40px;padding:0 10px;border:1px solid #cfd8e3;border-radius:9px;background:#fff;color:#172033;outline:none}
.platform-line-grid input:focus{border-color:#597a92;box-shadow:0 0 0 3px rgba(63,102,131,.09)}
.platform-line-wide{grid-column:1/-1}
.platform-line-endpoints{display:grid;gap:7px;padding:10px 12px;border:1px solid #e1e7ec;border-radius:10px;background:#fafcfd}
.platform-line-endpoints>div{display:grid;grid-template-columns:160px minmax(0,1fr);align-items:center;gap:10px}
.platform-line-endpoints span{font-size:9px;font-weight:750;color:#6e7d8b}
.platform-line-endpoints code{overflow-wrap:anywhere;font-size:10px;color:#314b60}
.platform-line-enable{margin:0}
.platform-line-actions{display:flex;justify-content:flex-end}
.platform-line-actions button{width:180px;margin:0}
.platform-line-test{display:flex;justify-content:flex-end;margin:8px 0 0}
.platform-line-test button{margin:0}
.guardian-line-panel{grid-column:1/-1}
.guardian-line-panel>.panel-title{margin-bottom:10px}
.guardian-line-connect{min-width:180px}
.guardian-line-linked{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #dce5ea;border-radius:10px;background:#f8fbfc}
.guardian-line-linked>div{display:grid;gap:2px;min-width:0}
.guardian-line-linked strong{font-size:13px}
.guardian-line-linked small{font-size:9px;color:#758391}
.guardian-line-linked form{margin:0}
.guardian-line-linked button{margin:0}
.guardian-line-history-help{margin:10px 0;color:#687886;font-size:10px;line-height:1.5}
.guardian-line-preferences{display:grid;gap:7px;margin-top:12px}
.guardian-line-preferences h3{margin:0 0 2px;font-size:13px}
.guardian-line-preference-row{display:grid;grid-template-columns:minmax(180px,1fr) 90px 90px 80px;align-items:center;gap:8px;padding:8px 10px;border:1px solid #e2e8ed;border-radius:9px;background:#fff}
.guardian-line-preference-row>div{display:grid;gap:1px;min-width:0}
.guardian-line-preference-row>div strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.guardian-line-preference-row>div small{font-size:9px;color:#82909c}
.guardian-line-preference-row>label{display:flex;align-items:center;justify-content:center;gap:5px;margin:0;font-size:10px;font-weight:700}
.guardian-line-preference-row input[type=checkbox]{width:16px;height:16px}
.guardian-line-preference-row button{height:32px;margin:0}
@media(max-width:760px){
  .platform-line-grid{grid-template-columns:1fr}
  .platform-line-wide{grid-column:auto}
  .platform-line-endpoints>div{grid-template-columns:1fr;gap:3px}
  .platform-line-actions button{width:100%}
  .guardian-line-preference-row{grid-template-columns:1fr 1fr 1fr}
  .guardian-line-preference-row>div{grid-column:1/-1}
  .guardian-line-preference-row button{width:100%}
}.guardian-invite-paper{margin-bottom:18px}.guardian-paper-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:28px;align-items:center}.guardian-qr-wrap{display:flex;justify-content:center;align-items:center;padding:18px;background:#fff;border:1px solid #dbe3e9;border-radius:14px}.guardian-qr img,.guardian-qr canvas{display:block;max-width:100%;height:auto}.guardian-url{overflow-wrap:anywhere;padding:10px 12px;border-radius:9px;background:#f5f7f9;font-size:10px;color:#5c6976}.guardian-page{background:#f4f7f9}.guardian-card{width:min(620px,calc(100% - 32px));margin:48px auto;padding:34px;background:#fff;border:1px solid #e0e6eb;border-radius:18px;box-shadow:0 18px 45px rgba(39,58,75,.08)}.guardian-card h1{margin:4px 0 14px}.simple-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.simple-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf1f4}.simple-list form{margin:0}.print-only{display:none}@media print{body{background:#fff!important}.app-header,.page-heading,.admin-grid,.notice,.guardian-invite-paper button{display:none!important}.admin-main{width:100%;margin:0;padding:0}.guardian-invite-paper{display:block!important;border:0;box-shadow:none;margin:0;padding:20mm}.guardian-invite-paper .print-only{display:block}.guardian-paper-grid{grid-template-columns:1fr 72mm;gap:12mm}.guardian-url{font-size:8pt}}.admin-main>.page-heading{margin-bottom:16px}.admin-main .panel>h2{margin-bottom:14px}.admin-main article.panel>form:not(.compact-form) input[type=email],.admin-main article.panel>form:not(.compact-form) input[type=text],.admin-main article.panel>form:not(.compact-form) input[type=number],.admin-main article.panel>form:not(.compact-form) select{height:38px;padding:0 10px;border-radius:9px}.admin-main article.panel>form:not(.compact-form)>button,.admin-main article.panel>form:not(.compact-form) label+button{height:38px;margin-top:2px}.admin-main .worker-form input[type=text],.admin-main .worker-form select{height:38px;padding:0 10px;border-radius:9px}.admin-main .worker-form .form-action button{height:38px;margin:0}.admin-main .panel>form label{line-height:1.35}
/* Admin pages: top navigation already identifies the current screen, so remove redundant title blocks. */
.admin-main{margin-top:16px}
.admin-header{min-width:0}
.admin-header .brand-line,.admin-header .header-actions{flex:0 0 auto}
.admin-header .app-nav{min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
.admin-header .app-nav::-webkit-scrollbar{display:none}
.admin-main>.page-heading:not(.attendance-heading){display:none}
.admin-main>.attendance-heading>div:first-child{display:none}
.admin-main>.attendance-heading{justify-content:flex-end;margin-bottom:10px}

/* Notices: compact, readable workflow with full-width editing. */
.notice-page{width:min(1440px,calc(100% - 28px));margin:18px auto 32px}
.notice-page>.panel{padding:18px 20px;margin-bottom:14px;border-radius:14px}
.notice-page>.panel+.panel{margin-top:14px!important}
.notice-page .notice-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;padding-bottom:11px;border-bottom:1px solid #edf1f4}
.notice-page .notice-section-head h2,.notice-page>.panel>.panel-title h2{margin:0;font-size:17px}
.notice-page .notice-section-head p{margin:3px 0 0;color:#7b8793;font-size:10px;line-height:1.45}
.notice-create-form,.notice-edit-form{display:grid;gap:12px}
.notice-form-field{display:grid;gap:5px;min-width:0}
.notice-form-field label,.notice-targets legend{font-size:11px;font-weight:750;color:#2c3e50}
.notice-form-content textarea,.notice-edit-form textarea{width:100%;min-height:82px;padding:10px 12px;border:1px solid #cfd8e3;border-radius:10px;background:#fff;color:#172033;font:inherit;line-height:1.5;resize:vertical;outline:none}
.notice-form-content textarea:focus,.notice-edit-form textarea:focus,.notice-page input[type=datetime-local]:focus{border-color:#5f7f96;box-shadow:0 0 0 3px rgba(61,100,129,.09)}
.notice-time-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.notice-page input[type=datetime-local]{width:100%;height:40px;padding:0 10px;border:1px solid #cfd8e3;border-radius:9px;background:#fff;color:#172033;outline:none}
.notice-page .field-help{margin:0;color:#8995a1;font-size:9px;line-height:1.4}
.notice-targets{min-width:0;margin:0;padding:10px 12px 12px;border:1px solid #dbe3e9;border-radius:11px;background:#fafcfd}
.notice-targets legend{padding:0 5px}
.notice-targets-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 8px;color:#7d8995;font-size:9px}
.notice-targets-head strong{padding:3px 7px;border-radius:999px;background:#eef3f6;color:#5c6f80;font-size:9px}
.notice-target-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:220px;overflow:auto;padding-right:2px}
.notice-terminal-option{display:flex;align-items:flex-start;gap:8px;min-width:0;margin:0;padding:8px 9px;border:1px solid #e1e7ec;border-radius:9px;background:#fff;cursor:pointer}
.notice-terminal-option:hover{border-color:#cbd6df;background:#f8fbfc}
.notice-terminal-option:has(input:checked){border-color:#90a8b9;background:#eef5f8;box-shadow:inset 0 0 0 1px #90a8b9}
.notice-terminal-option input{flex:0 0 16px;width:16px;height:16px;margin-top:2px}
.notice-terminal-option span{display:grid;gap:1px;min-width:0}
.notice-terminal-option strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#2c3f51}
.notice-terminal-option small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:#85919c}
.notice-form-actions,.notice-edit-actions{display:flex;justify-content:flex-end;gap:8px}
.notice-form-actions button{width:180px;height:40px;margin:0}
.notice-list-card>.panel-title{margin-bottom:10px}
.notice-list-scroll{overflow:auto;border:1px solid #e1e7ec;border-radius:11px}
.notice-table{width:100%;min-width:1080px;border-collapse:separate;border-spacing:0}
.notice-table thead th{padding:10px 11px;background:#f7f9fb;color:#6c7a87;font-size:9px;font-weight:750;text-align:center;border-bottom:1px solid #e4e9ed}
.notice-table tbody td{padding:11px;text-align:center;border-bottom:1px solid #edf1f4;vertical-align:middle}
.notice-table tbody tr.notice-summary-row:last-of-type td{border-bottom:0}
.notice-summary-row{background:#fff;transition:background .15s ease}
.notice-summary-row:hover{background:#fbfcfd}
.notice-summary-row.is-editing{background:#f4f8fa}
.notice-summary-row.is-dragging{opacity:.56}
.notice-order-heading{width:58px;text-align:center}
.notice-order-cell{text-align:center}
.notice-drag-handle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;color:#697a89;font-size:17px;cursor:grab;user-select:none}
.notice-drag-handle:hover{background:#eaf1f5;color:#254d69}
.notice-content-cell{max-width:520px;text-align:left!important}
.notice-content-cell strong{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.45;font-size:11px;color:#203245}
.notice-period-cell{display:grid;grid-template-columns:auto 14px auto;align-items:center;justify-content:center;gap:4px;white-space:nowrap;color:#5e6d7b;font-size:9px}
.notice-period-cell i{color:#a0aab3;font-style:normal;text-align:center}
.notice-target-badge{display:inline-flex;align-items:center;min-height:25px;padding:3px 8px;border-radius:999px;background:#eef3f6;color:#536b7c;font-size:9px;font-weight:750;white-space:nowrap}
.notice-action-heading{width:250px;text-align:center}
.notice-actions-cell{text-align:center}
.notice-row-actions{display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.notice-row-actions form{margin:0}
.notice-row-actions .small-button{height:32px;min-width:58px;padding:0 9px;margin:0}
.notice-row-actions .danger-button{box-shadow:none}
.notice-edit-row>td{padding:0!important;text-align:left!important;background:#f4f8fa;border-bottom:1px solid #dfe7ed!important}
.notice-edit-form{margin:0;padding:14px 16px 16px}
.notice-edit-form .notice-form-field>label,
.notice-edit-form .notice-targets legend{text-align:left}
.notice-edit-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid #e4eaee}
.notice-edit-head>div{display:flex;align-items:baseline;gap:8px}
.notice-edit-head strong{font-size:13px;color:#26394a}
.notice-edit-head span{font-size:9px;color:#85919d}
.notice-edit-head .notice-edit-close{height:30px;margin:0}
.notice-edit-actions button{width:130px;height:36px;margin:0}
.notice-edit-actions button[type=submit]{width:150px}
.notice-page #notice-sortable[aria-busy="true"]{opacity:.72;pointer-events:none}
@media(max-width:980px){
  .notice-target-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .notice-action-heading{width:220px}
}
@media(max-width:700px){
  .notice-page{width:min(100% - 20px,1440px)}
  .notice-page>.panel{padding:14px}
  .notice-time-grid{grid-template-columns:1fr}
  .notice-target-grid{grid-template-columns:1fr}
  .notice-form-actions button{width:100%}
  .notice-edit-actions{display:grid;grid-template-columns:1fr 1fr}
  .notice-edit-actions button,.notice-edit-actions button[type=submit]{width:100%}
}

/* Compact reusable management surfaces: workers / participants */
.admin-main>.notice[role="status"]{display:none}
.guardian-bulk-panel+.admin-grid.two-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 14px}
.guardian-bulk-panel+.admin-grid.two-columns>.wide-panel{grid-column:1/-1}
.guardian-bulk-panel+.admin-grid.two-columns>.panel{min-width:0}
.management-page{width:min(1440px,calc(100% - 28px));margin:18px auto 32px}
.management-page>.page-heading{margin-bottom:0}
.management-page .page-heading h1{font-size:28px;margin-bottom:4px}
.management-page .page-heading p:not(.eyebrow){font-size:13px}
.management-page .panel{padding:16px 18px;margin-bottom:0;border-radius:13px}
.management-page .panel h2{font-size:17px;margin-bottom:12px}
.management-page .panel-title{margin-bottom:8px}
.management-page .panel-title>span{padding:4px 8px;font-size:11px}
.management-page .field-help{font-size:10px;line-height:1.45}
.management-page input:not([type=hidden]):not([type=checkbox]):not([type=radio]),.management-page select{height:38px;padding:0 10px;border-radius:9px}
.management-page button{height:38px;margin-top:0;border-radius:9px}
.management-workers{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 14px}
.management-workers>.page-heading{grid-column:1/-1}
.management-workers>.panel:nth-of-type(1),.management-workers>.panel:nth-of-type(2){min-width:0}
.management-workers>.panel:nth-of-type(3){grid-column:1/-1}
.management-workers .worker-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}
.management-workers .worker-form>div{gap:5px}
.management-workers .worker-form .form-action{grid-column:1/-1;display:flex;justify-content:flex-end}
.management-workers .worker-form .form-action button{width:160px}
.management-participants .admin-grid.two-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 14px}
.management-participants .admin-grid.two-columns>.panel{min-width:0}
.management-participants .admin-grid.two-columns>.wide-panel{grid-column:1/-1}
.management-participants form[action="/admin/participants/create"]{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;align-items:end}
.management-participants form[action="/admin/participants/create"]>label{display:grid;gap:5px}
.management-participants form[action="/admin/participants/create"]>label:nth-of-type(3){grid-column:1/2}
.management-participants form[action="/admin/participants/create"]>.field-help{grid-column:2/3;align-self:end;margin:0 0 2px}
.management-participants form[action="/admin/participants/create"]>button{grid-column:1/-1;justify-self:end;width:160px}
.management-participants .participant-table{width:100%;min-width:920px}
.management-participants .participant-table th,.management-participants .participant-table td{padding:9px 10px;text-align:center;vertical-align:middle}
.management-participants .participant-action-heading{width:92px;text-align:center}
.management-participants .participant-actions-cell{text-align:center;white-space:nowrap}
.management-participants .participant-edit-toggle{min-width:68px;height:34px}
.management-participants .participant-status{display:inline-flex;align-items:center;min-height:26px;padding:3px 8px;border-radius:999px;background:#eef2f5;color:#536372;font-size:10px;font-weight:700}
.management-participants .participant-status-active{background:#eaf6ef;color:#2c7650}
.management-participants .participant-edit-row>td{padding:0!important;text-align:left!important;background:#f6f9fb}
.management-participants .participant-edit-panel{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:12px;padding:12px 14px 14px;border-top:1px solid #dfe6ec;border-bottom:1px solid #dfe6ec}
.management-participants .participant-edit-section{min-width:0;padding:13px 14px;background:#fff;border:1px solid #dfe6ec;border-radius:11px}
.management-participants .participant-edit-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.management-participants .participant-edit-section-head>div{display:flex;align-items:baseline;gap:8px;min-width:0}
.management-participants .participant-edit-section-head strong{font-size:13px;color:#172033}
.management-participants .participant-edit-section-head span{font-size:9px;color:#86929e}
.management-participants .participant-edit-close{height:30px;min-width:62px;padding:0 10px}
.management-participants .participant-edit-form{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(140px,.55fr);gap:8px;align-items:end}
.management-participants .participant-edit-form label{display:grid;gap:4px;font-size:10px;font-weight:700;color:#536372}
.management-participants .participant-edit-form input,.management-participants .participant-edit-form select{width:100%;height:36px!important}
.management-participants .participant-edit-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;margin-top:2px}
.management-participants .participant-edit-form-actions button{width:128px;height:36px}
.management-participants .participant-edit-operations{display:grid;gap:10px;align-content:start}
.management-participants .participant-edit-label{font-size:9px;font-weight:700;color:#7a8793}
.management-participants .participant-card-current{display:grid;gap:5px}
.management-participants .participant-card-list{display:flex;flex-wrap:wrap;gap:6px}
.management-participants .participant-card-chip{display:flex;align-items:center;gap:8px;margin:0;padding:5px 6px 5px 9px;border:1px solid #dbe3e9;border-radius:9px;background:#f8fafb}
.management-participants .participant-card-chip code{font-size:10px;color:#29475f;letter-spacing:.03em}
.management-participants .participant-card-chip button{height:28px;padding:0 8px}
.management-participants .participant-card-empty{font-size:10px;color:#8a96a1}
.management-participants .participant-card-policy{margin:0;color:#7b8894;font-size:9px;line-height:1.45}
.management-participants .participant-card-add{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:8px;align-items:end;margin:0}
.management-participants .participant-card-add label{display:grid;gap:4px;font-size:10px;font-weight:700;color:#536372}
.management-participants .participant-card-add label span{font-size:9px}
.management-participants .participant-card-add input{width:100%;height:34px!important}
.management-participants .participant-card-add button{height:34px}
.management-participants .participant-guardian-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:8px;border-top:1px solid #edf1f4}
.management-participants .participant-guardian-row>div{display:flex;align-items:baseline;gap:8px}
.management-participants .participant-guardian-row>div strong{font-size:13px}
.management-participants .participant-guardian-row form{margin:0}
.management-participants .participant-guardian-row button{height:34px;padding:0 14px}
@media(max-width:980px){
  .management-participants .participant-edit-panel{grid-template-columns:1fr}
  .management-participants .participant-edit-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .management-participants .participant-edit-form>label:last-of-type{grid-column:1/2}
}
@media(max-width:700px){
  .management-participants .participant-edit-panel{padding:10px}
  .management-participants .participant-edit-form{grid-template-columns:1fr}
  .management-participants .participant-edit-form>label:last-of-type{grid-column:auto}
  .management-participants .participant-edit-form-actions button{width:100%}
  .management-participants .participant-card-add{grid-template-columns:1fr}
  .management-participants .participant-card-add button{width:100%}
  .management-participants .participant-guardian-row{align-items:stretch;flex-direction:column}
  .management-participants .participant-guardian-row button{width:100%}
}
.management-page form[action$="/import"]{grid-template-columns:minmax(0,1fr) 190px;gap:8px 10px;align-items:end}
.management-page form[action$="/import"]>label{display:flex;align-items:center;gap:8px;min-width:0;white-space:nowrap}
.management-page form[action$="/import"] input[type=file]{height:auto;min-width:0;max-width:100%;padding:0;border:0;border-radius:0;font-size:12px}
.management-page form[action$="/import"]>button{width:190px}
.management-participants .guardian-bulk-panel{padding:14px 16px}
.management-participants .guardian-bulk-panel .panel-title{margin-bottom:6px}
.management-participants .guardian-bulk-note{font-size:10px}
/* Unified admin dashboard + master-list controls */
.dashboard{width:min(1440px,calc(100% - 28px));margin:18px auto 32px}
.dashboard-welcome{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px}
.dashboard-welcome h1{margin:2px 0 3px;font-size:22px}
.dashboard-welcome p{margin:0;color:#73808d;font-size:11px}
.dashboard-welcome dl{margin:0;min-width:220px}
.dashboard-welcome dl>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0}
.dashboard-welcome dt{font-size:9px;color:#85919d}
.dashboard-welcome dd{margin:0;font-size:11px;font-weight:700}
.dashboard-status{margin:14px 0 18px}
.dashboard-section-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:0 0 8px}
.dashboard-section-heading h2{margin:0;font-size:15px;color:#26394a}
.dashboard-section-heading p{margin:2px 0 0;color:#7c8995;font-size:10px}
.dashboard-menu-heading{margin-top:12px}
.dashboard-stat-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.dashboard-stat{display:grid;gap:2px;min-width:0;padding:12px 13px;border:1px solid #dce4ea;border-radius:10px;background:#fff;color:#24384a;text-decoration:none;box-shadow:0 3px 10px rgba(31,48,64,.035)}
.dashboard-stat:hover{border-color:#aebcc8;transform:translateY(-1px)}
.dashboard-stat span{font-size:9px;color:#71808d;font-weight:700}
.dashboard-stat strong{font-size:24px;line-height:1.05}
.dashboard-stat strong em{font-size:12px;font-style:normal;color:#7a8793;font-weight:650}
.dashboard-stat small{font-size:8px;color:#8b96a0}
.dashboard-stat-attention strong{color:#825e24}
.dashboard .module-grid{gap:9px}
.dashboard .module-card{min-height:90px;padding:15px}
.dashboard .module-card span{font-size:10px}
.dashboard .module-card strong{font-size:15px}
.management-list-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin:0 0 8px}
.management-filter-group{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.management-filter-select{height:34px;min-width:120px;max-width:190px;padding:0 28px 0 9px;border:1px solid #cfd8e3;border-radius:8px;background:#fff;color:#33495c;font-size:10px}
.management-filter-reset{height:34px;padding:0 10px;border:1px solid #d5dde4;border-radius:8px;background:#f8fafb;color:#657584;font-size:10px;font-weight:700;cursor:pointer}
.management-filter-reset:hover{background:#f1f5f7}
.admin-master-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:0 0 9px}
.admin-master-toolbar input[type=search]{flex:1;min-width:240px;height:36px;padding:0 11px;border:1px solid #cfd8e3;border-radius:9px;background:#fff;font-size:11px}
.admin-master-toolbar select{height:36px;min-width:145px;padding:0 28px 0 9px;border:1px solid #cfd8e3;border-radius:9px;background:#fff;font-size:10px}
.admin-master-toolbar .admin-master-result{margin-left:auto;color:#758291;font-size:10px;white-space:nowrap}
.admin-list-scroll{max-height:calc(100vh - 300px);overflow:auto}
.admin-list-scroll thead th{position:sticky;top:0;z-index:2;background:#f8fafb}
.sync-badge{display:inline-flex;align-items:center;min-height:25px;padding:3px 8px;border-radius:999px;background:#eef2f5;color:#657584;font-size:9px;font-weight:750;white-space:nowrap}
.sync-badge.is-current{background:#eaf6ef;color:#2e7852}
.sync-badge.is-late{background:#fff5e6;color:#8b6429}
@media(max-width:1180px){.dashboard-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.dashboard-welcome{align-items:flex-start;flex-direction:column}.dashboard-welcome dl{width:100%;min-width:0}.dashboard-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.management-filter-group{width:100%}.management-filter-select{flex:1;max-width:none}.admin-master-toolbar input[type=search]{min-width:100%}}
.management-list-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin:0 0 8px}
.management-list-search{display:flex;align-items:center;gap:8px;flex:1;min-width:0;font-size:11px}
.management-list-search>span{flex:0 0 auto;color:#617184;font-weight:700}
.management-list-search input[type=search]{width:min(620px,100%);height:36px;padding:0 11px;border:1px solid #cfd8e3;border-radius:9px;background:#fff;color:#172033;outline:none;font-size:12px}
.management-list-search input[type=search]:focus{border-color:#597a92;box-shadow:0 0 0 3px rgba(63,102,131,.09)}
.management-list-search input[type=search]::placeholder{color:#9aa6b3}
.management-list-result{flex:0 0 auto;font-size:10px;color:#758291;white-space:nowrap}
.management-list-scroll{max-height:calc(100vh - 330px);overflow:auto}
.management-list-scroll thead th{position:sticky;top:0;z-index:2;background:#f8fafb}
.management-search-empty td{text-align:center!important;padding:24px!important;color:#8995a2;font-size:11px}
.management-page .worker-table th,.management-page .worker-table td{padding:7px 8px}
.management-page .worker-table .worker-edit-form input[type=text],.management-page .worker-table .worker-edit-form select,.management-page .worker-table .card-add-form input[type=text]{height:34px}
.management-page .worker-table .worker-edit-form .small-button,.management-page .worker-table .card-add-form .small-button{height:34px}
@media(max-width:980px){.management-workers{grid-template-columns:1fr}.management-workers>.panel:nth-of-type(3){grid-column:auto}.management-participants .admin-grid.two-columns{grid-template-columns:1fr}.management-participants .admin-grid.two-columns>.wide-panel{grid-column:auto}.management-list-scroll{max-height:52vh}}
@media(max-width:700px){.management-page{width:min(1440px,calc(100% - 28px));margin:10px auto 20px}.management-page .panel{padding:14px}.management-workers .worker-form,.management-participants form[action="/admin/participants/create"]{grid-template-columns:1fr}.management-participants form[action="/admin/participants/create"]>label:nth-of-type(3),.management-participants form[action="/admin/participants/create"]>.field-help{grid-column:auto}.management-page form[action$="/import"]{grid-template-columns:1fr}.management-page form[action$="/import"]>button{width:100%}.management-list-toolbar{align-items:stretch;flex-direction:column;gap:5px}.management-list-search{width:100%}.management-list-search input[type=search]{width:100%}.management-workers .worker-form .form-action button,.management-participants form[action="/admin/participants/create"]>button{width:100%}}
@media(max-width:980px){.two-columns{grid-template-columns:1fr}.settings-form{grid-template-columns:1fr}.worker-form{grid-template-columns:repeat(2,minmax(180px,1fr))}.guardian-paper-grid{grid-template-columns:1fr}.guardian-qr-wrap{max-width:300px;margin:auto}}@media(max-width:860px){.login-shell{grid-template-columns:1fr}.brand-panel{min-height:300px;padding:44px 28px}.brand-panel h1{font-size:46px}.brand-copy{font-size:18px}.brand-points{margin-top:26px}.login-card{padding:44px 28px;min-height:calc(100vh - 300px)}.module-grid{grid-template-columns:1fr}.app-header>div span{display:none}}@media(max-width:480px){.brand-panel{min-height:250px}.brand-panel h1{font-size:40px}.brand-copy{font-size:16px}.brand-points li{font-size:11px}.login-card{padding:36px 20px}.login-card h2{font-size:28px}.app-card{padding:24px}.dashboard{width:min(1440px,calc(100% - 28px));margin-top:20px}.welcome-card{padding:24px}}
