.today-page{display:flex;flex-direction:column;gap:14px}.today-summary{display:flex;align-items:center;gap:26px;padding:12px 18px;border:1px solid #e6eaf2;border-radius:14px;background:#fff;box-shadow:0 6px 18px #1f2d5a0a}.today-summary>div{display:flex;flex-direction:column;gap:1px}.today-summary span{color:#98a0b3;font-size:10px}.today-summary strong{font-size:20px}.today-summary strong.is-attention{color:#d97706}.today-approval-link{margin-left:auto;color:#3b5bfd;font-size:12px}.today-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.today-table{padding:8px 14px 14px;border:1px solid #e6eaf2;border-radius:14px;background:#fff;box-shadow:0 6px 18px #1f2d5a0a}.today-table .ant-table td strong,.today-drawer .ant-table td strong{display:block;font-size:13px}.today-table .ant-table td small{display:block;margin-top:2px;color:#98a0b3;font-size:11px}.today-cell span{display:block;font-size:12px}.today-cell small{display:block;margin-top:2px;color:#98a0b3;font-size:10px}.today-time{color:#59627a;font-size:12px;font-variant-numeric:tabular-nums}.today-drawer{display:flex;flex-direction:column;gap:12px}.today-drawer-state{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;background:#f8fafc;font-size:11px}@media(max-width:820px){.today-summary{flex-wrap:wrap;gap:14px}.today-approval-link{margin-left:0}}.today-drawer-detail-link{width:fit-content;color:#3b5bfd;font-size:12px}.room-detail{display:flex;flex-direction:column;gap:14px}.room-detail-back{width:fit-content;color:#64748b;font-size:12px}.room-detail-back:hover{color:#3b5bfd}.room-detail-loading{display:flex;flex-direction:column;align-items:center;gap:10px;padding:80px 16px}.room-detail-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.2fr) auto;gap:18px;align-items:center;padding:16px 18px;border:1px solid #e6eaf2;border-radius:14px;background:#fff;box-shadow:0 6px 18px #1f2d5a0a}.room-detail-state{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.room-detail-hint{padding:2px 8px;border-radius:999px;background:#fffbeb;color:#b45309;font-size:10px}.room-detail-meetings{display:grid;grid-template-columns:1fr 1fr;gap:10px}.room-detail-meetings>div{padding:9px 11px;border-radius:9px;background:#f8fafc}.room-detail-meetings span{display:block;color:#98a0b3;font-size:10px}.room-detail-meetings strong{display:block;margin:2px 0 1px;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.room-detail-meetings small{color:#8b93a7;font-size:10px}.room-detail-pending{color:#b45309;font-size:12px;white-space:nowrap}.room-detail-panel{padding:16px 18px 12px;border:1px solid #e6eaf2;border-radius:14px;background:#fff;box-shadow:0 6px 18px #1f2d5a0a}.room-detail-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.room-detail-panel-head h3{margin:0 0 3px;font-size:14px}.room-detail-panel-head p{margin:0;color:#8b93a7;font-size:11px}.room-detail-time{color:#59627a;font-size:12px;font-variant-numeric:tabular-nums}.room-detail-panel .ant-table td strong{display:block;font-size:12px}.room-detail-panel .ant-table td small{display:block;margin-top:2px;color:#98a0b3;font-size:10px}@media(max-width:1100px){.room-detail-hero{grid-template-columns:1fr}.room-detail-pending{white-space:normal}}.audit-page{display:flex;flex-direction:column;gap:14px}.audit-table{padding:8px 14px 14px;border:1px solid #e6eaf2;border-radius:14px;background:#fff;box-shadow:0 6px 18px #1f2d5a0a}.audit-table .ant-table td strong{display:block;font-size:12px}.audit-table .ant-table td small{display:block;margin-top:2px;color:#98a0b3;font-size:10px}.audit-time{color:#59627a;font-size:12px;font-variant-numeric:tabular-nums}.audit-action{font-weight:600}.audit-reason{color:#59627a;font-size:11px;line-height:1.5}.audit-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.records-page{display:flex;flex-direction:column;gap:14px}.records-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.records-head strong{display:block;font-size:14px}.records-head .ant-typography{font-size:11px}.records-summary{display:flex;align-items:center;gap:24px;padding:12px 18px;border:1px solid #e6eaf2;border-radius:14px;background:#fff;box-shadow:0 6px 18px #1f2d5a0a}.records-summary>div{display:flex;flex-direction:column;gap:1px}.records-summary span{color:#98a0b3;font-size:10px}.records-summary strong{font-size:20px}.records-summary strong.is-bad{color:#dc2626}.records-summary strong.is-warn{color:#d97706}.records-table{padding:8px 14px 14px;border:1px solid #e6eaf2;border-radius:14px;background:#fff;box-shadow:0 6px 18px #1f2d5a0a}.records-table .ant-table td strong{display:block;font-size:12px}.records-table .ant-table td small{display:block;margin-top:2px;color:#98a0b3;font-size:10px}.records-time{color:#59627a;font-size:12px;font-variant-numeric:tabular-nums}.records-detail{display:block;color:#59627a;font-size:11px;line-height:1.5}@media(max-width:820px){.records-summary{flex-wrap:wrap;gap:14px}}.exceptions-page{display:flex;flex-direction:column;gap:14px}.exception-note{border-radius:12px}.exceptions-table{padding:8px 14px 14px;border:1px solid #e6eaf2;border-radius:14px;background:#fff;box-shadow:0 6px 18px #1f2d5a0a}.exception-time{color:#59627a;font-size:12px;font-variant-numeric:tabular-nums}.room-exception-banner{display:flex;align-items:center;gap:14px;padding:12px 16px;border:1px solid #fde68a;border-radius:12px;background:#fffbeb}.room-exception-banner>div{flex:1}.room-exception-banner strong{display:block;color:#92400e;font-size:13px}.room-exception-banner p{margin:3px 0 0;color:#a16207;font-size:11px}.room-exception-banner a{color:#b45309;font-size:12px;white-space:nowrap}.policies-page{display:flex;flex-direction:column;gap:14px}.policy-state{padding:14px 16px;border:1px solid #e6eaf2;border-radius:14px;background:#fff;box-shadow:0 6px 18px #1f2d5a0a}.policy-state-tags{display:flex;flex-wrap:wrap;gap:6px}.policy-state p{margin:9px 0 0;color:#59627a;font-size:12px;line-height:1.6}.policy-rules{padding:16px 18px;border:1px solid #e6eaf2;border-radius:14px;background:#fff;box-shadow:0 6px 18px #1f2d5a0a}.policy-rules ol{display:flex;flex-direction:column;margin:0 0 12px;padding:0;list-style:none}.policy-rules li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;align-items:baseline;padding:11px 2px;border-bottom:1px solid #f1f4f9}.policy-rules li:last-child{border-bottom:0}.policy-when{color:#8b93a7;font-size:12px}.policy-rules strong{font-size:13px;font-weight:600}.policies-empty{padding:40px 16px;border:1px solid #e6eaf2;border-radius:14px;background:#fff}.room-subnav{display:flex;gap:4px;width:fit-content;padding:4px;border-radius:10px;background:#e9eef8}@media(max-width:700px){.policy-rules li{grid-template-columns:1fr;gap:3px}}.policy-rule-text{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.rule-editor{display:flex;flex-direction:column;gap:14px}.rule-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rule-form label{display:flex;flex-direction:column;gap:5px;color:#59627a;font-size:12px}.rule-form .ant-input-number{width:100%}.rule-editor-hint{color:#8b93a7;font-size:11px;line-height:1.5}.rule-editor-notes{padding:10px 12px;border:1px solid #e5eaf3;border-radius:8px;background:#f7f9fc;color:#59627a;font-size:12px;line-height:1.65}.rule-editor-notes-title{margin-bottom:4px;color:#2f3542;font-weight:600}.rule-editor-notes ul{margin:0;padding-left:16px}.rule-editor-notes li+li{margin-top:2px}.rule-editor-actions{display:flex;justify-content:flex-end;gap:8px}.rule-preview{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid #e6eaf2;border-radius:10px;background:#f8fafc}.rule-preview>strong{font-size:13px}.rule-preview p{margin:0;color:#59627a;font-size:11px}.rule-history{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.rule-history li{padding:10px 2px;border-bottom:1px solid #f1f4f9}.rule-history-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.rule-history-changes{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 0;padding:0;list-style:none;color:#59627a;font-size:11px}.rule-history-changes li:before{content:"·";margin-right:5px;color:#98a0b3}.rule-history li:last-child{border-bottom:0}.rule-history strong{margin-right:8px;font-size:13px}.rule-history small{color:#8b93a7;font-size:11px}.policy-preview-panel{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid #bfdbfe;border-radius:14px;background:#fff;box-shadow:0 6px 18px #1f2d5a0a}.policy-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.policy-preview-head h3{margin:0 0 3px;font-size:14px}.policy-preview-head p{margin:0;color:#8b93a7;font-size:11px}.policy-draft{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px dashed #c7d2fe;border-radius:14px;background:#f8faff}.policy-draft-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.policy-draft-head h3{margin:0 0 3px;font-size:14px}.policy-draft-head p{margin:0;color:#8b93a7;font-size:11px}.policy-draft-values{display:flex;flex-wrap:wrap;gap:6px}.policy-draft-values span{padding:4px 9px;border-radius:7px;background:#fff;color:#59627a;font-size:11px}.control-page{display:flex;flex-direction:column;gap:14px}.control-state{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;border:1px solid #e6eaf2;border-radius:14px;background:#fff;box-shadow:0 6px 18px #1f2d5a0a}.control-state a{margin-left:auto;color:#3b5bfd;font-size:12px}.control-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.control-card{border:1px solid #e6eaf2;border-radius:14px;box-shadow:0 6px 18px #1f2d5a0a}.control-card h3{margin:0 0 3px;font-size:15px}.control-card p{margin:0 0 14px;color:#8b93a7;font-size:11px}.control-fields{display:flex;gap:12px;margin-bottom:14px}.control-field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;color:#59627a;font-size:12px}.control-field .ant-input-number{width:150px}.control-result{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid #e6eaf2;border-radius:14px;background:#fff}.control-result.is-ok{border-color:#bbf7d0;background:#f0fdf4}.control-result h3{margin:0 0 3px;font-size:14px}.control-result p{margin:0;color:#59627a;font-size:12px}.control-result a{color:#3b5bfd;font-size:12px;white-space:nowrap}.room-subnav{display:flex;flex-wrap:wrap;gap:4px;width:fit-content;padding:4px;border-radius:10px;background:#e9eef8}.room-subnav a{padding:6px 14px;border-radius:7px;color:#64748b;font-size:12px}.room-subnav a.is-active{background:#fff;color:#1f2329;box-shadow:0 1px 3px #0f172a1f;font-weight:600}.records-back{width:fit-content;color:#64748b;font-size:12px}.records-back:hover{color:#3b5bfd}@media(max-width:900px){.control-grid{grid-template-columns:1fr}}*{box-sizing:border-box;letter-spacing:0}html,body,#root{min-height:100%}body{margin:0;color:#1f2329;background:#f4f6fb}a{overflow-wrap:anywhere}.app-shell{min-height:100vh}.topbar.ant-layout-header{height:auto;min-height:64px;padding:10px 24px;background:#fff;border-bottom:0;box-shadow:0 1px 2px #1f2d5a0a,0 4px 16px #1f2d5a0f;display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;line-height:1.5;position:relative;z-index:1}.brand{display:flex;align-items:center;gap:10px;color:#1f2329;font-size:18px;font-weight:650;white-space:nowrap}.brand-logo{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,#6a8dff,#3b5bfd 55%,#a26bff);color:#fff;font-size:16px;box-shadow:0 4px 10px #3b5bfd4d}.brand-sub{font-size:13px;font-weight:400;color:#646a73;margin-left:4px}.sidebar{border-right:0;box-shadow:1px 0 2px #1f2d5a08}.sidebar .ant-menu{border-inline-end:0!important}.content{padding:20px 24px 48px;min-width:0;background:transparent}.loading{min-height:100vh;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;background:#f4f6fb}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(60% 50% at 15% 10%,#6a8dff40,#6a8dff00),radial-gradient(55% 45% at 85% 85%,#a26bff38,#a26bff00),linear-gradient(180deg,#f4f6fb,#eef1fa)}.login-card{width:min(420px,100%);border:0;box-shadow:0 12px 40px #1f2d5a1f}.login-brand{display:flex;align-items:center;gap:10px;color:#1f2329;font-size:18px;font-weight:650;margin-bottom:8px}.login-form{margin-top:16px;display:flex;flex-direction:column;gap:12px}.heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;margin-bottom:12px}.heading-text{min-width:0}.heading-text h2.ant-typography{margin:0 0 4px}.filters{margin-bottom:16px}.failure{margin:12px 0}.source-warning{display:block;margin:4px 0 12px}.panel{border:0;border-radius:12px;padding:16px;background:#fff;box-shadow:0 1px 2px #1f2d5a0a,0 4px 16px #1f2d5a0f}.panel+.panel,.panel-stack>.panel+.panel{margin-top:16px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;margin-bottom:12px}.panel-heading h4.ant-typography,.panel h5.ant-typography{margin:0}.panel h5.ant-typography{margin:16px 0 8px}.room-tabs{min-width:0}.inner-table{margin-top:12px}.json-block{margin:0;padding:8px 10px;background:#f7f8fc;border:1px solid #eceff6;border-radius:8px;max-width:100%;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all}.mono-input textarea,.draft-editor{font-family:ui-monospace,SFMono-Regular,Menlo,monospace!important;font-size:12px!important}.draft-editor{width:100%;margin-bottom:12px}.field-tag{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;margin-inline-end:0}.control-field{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0;border-bottom:1px dashed #eceff6}.field-hint{font-size:12px;flex:1 1 220px;min-width:0}.field-label{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.field-label.block{display:flex;margin-top:12px}.block{width:100%}.back-link{display:inline-flex;align-items:center;gap:6px;margin-bottom:12px}.pagination{margin-top:16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.decision{margin-top:16px}@media(max-width:900px){.topbar.ant-layout-header{padding:10px 16px}.content{padding:16px 12px 40px}.heading{flex-direction:column;align-items:stretch}.field-hint{flex-basis:100%}}
