:root{color:#1a1a1a;background:#f4f5f7;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}*{box-sizing:border-box}body{padding:1rem 1.25rem 2rem;padding-left:max(1.25rem,env(safe-area-inset-left));padding-right:max(1.25rem,env(safe-area-inset-right));padding-bottom:max(2rem,env(safe-area-inset-bottom));-webkit-text-size-adjust:100%;max-width:1600px;margin:0}h1{margin:0 0 1rem;font-size:1.35rem}.cards{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin-bottom:1.25rem;display:grid}.card{background:#fff;border-radius:8px;padding:.75rem 1rem;box-shadow:0 1px 3px rgba(0,0,0,.08)}.card label{color:#666;margin-bottom:.25rem;font-size:.75rem;display:block}.card strong{font-size:1.05rem}.toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}select,button,input[type=text],input[type=password]{font:inherit;background:#fff;border:1px solid #ccc;border-radius:6px;padding:.35rem .6rem}button{cursor:pointer}button:hover:not(:disabled){background:#eef2ff}button:disabled{opacity:.5;cursor:not-allowed}button.primary{color:#fff;background:#1a1a1a;border-color:#1a1a1a}button.primary:hover:not(:disabled){background:#333}button.danger{color:#b00020;border-color:#b00020}.layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:1rem;display:grid}.side{background:#fff;border-radius:8px;padding:.75rem;position:-webkit-sticky;position:sticky;top:.75rem;box-shadow:0 1px 3px rgba(0,0,0,.08)}.side h2{margin:0 0 .5rem;font-size:.95rem;font-weight:600}.side .hint{color:#888;margin:0 0 .6rem;font-size:.75rem;line-height:1.35}.tabs{flex-wrap:wrap;gap:.25rem;margin-bottom:.75rem;display:flex}.tab{cursor:pointer;background:#f8f9fa;border:1px solid #ddd;border-radius:6px;padding:.3rem .5rem;font-size:.8rem}.tab.active{background:#dde5f5;border-color:#aac;font-weight:600}.event-list{max-height:480px;margin:0;padding:0;list-style:none;overflow-y:auto}.event-list li{border-bottom:1px solid #eee;padding:.5rem 0;font-size:.85rem}.event-list li:last-child{border-bottom:none}.event-meta{color:#888;margin-bottom:.2rem;font-size:.72rem}.event-list a{color:#2a5fbf;text-decoration:none}.event-list a:hover{text-decoration:underline}table{border-collapse:collapse;background:#fff;border-radius:8px;width:100%;font-size:.9rem;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.08)}th,td{text-align:left;border-bottom:1px solid #eee;padding:.5rem .65rem}th{-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;background:#f0f2f5;font-size:.8rem;font-weight:600}th.sortable{cursor:pointer}th.sortable:hover{background:#e4e8ee}th.sorted{background:#dde5f5}th .sort-ind{opacity:.45;margin-left:.2rem;font-size:.7rem}th.sorted .sort-ind{opacity:1}tr:hover td{background:#fafbfc}tr.p-0 td{background:#d8f0e2}tr.p-1 td{background:#d6e4f7}tr.p-2 td{background:#f5e0d4}tr.p-3 td{background:#ebe8d4}tr.p-0 td:first-child{box-shadow:inset 5px 0 #1f8a4c}tr.p-1 td:first-child{box-shadow:inset 5px 0 #2a5fbf}tr.p-2 td:first-child{box-shadow:inset 5px 0 #c45a1a}tr.p-3 td:first-child{box-shadow:inset 5px 0 #7a6b1a}tr.p-0:hover td{background:#c2e6d2}tr.p-1:hover td{background:#c2d6f2}tr.p-2:hover td{background:#ebcfc0}tr.p-3:hover td{background:#ddd8be}tr.total td{background:#f0f2f5;border-bottom:none;font-weight:600}.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.date{white-space:nowrap;font-variant-numeric:tabular-nums}.err{color:#b00020;background:#fff0f0;border-radius:8px;padding:1rem}.muted{color:#888;font-size:.85rem}.status-select{max-width:130px;padding:.2rem .35rem;font-size:.8rem}.bulk-bar{background:#eef2ff;border-radius:8px;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;padding:.5rem .75rem;display:flex}.modal-overlay{z-index:100;background:rgba(0,0,0,.4);justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:#fff;border-radius:10px;width:100%;max-width:520px;max-height:80vh;padding:1.25rem;overflow-y:auto;box-shadow:0 4px 20px rgba(0,0,0,.15)}.modal h2{margin:0 0 .75rem;font-size:1.1rem}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.login-page{justify-content:center;align-items:center;max-width:none;min-height:100vh;padding:1rem;display:flex}.login-form{background:#fff;border-radius:10px;width:100%;max-width:360px;padding:1.5rem 1.75rem;box-shadow:0 1px 4px rgba(0,0,0,.1)}.login-form input[type=password]{width:100%;margin-bottom:.85rem;padding:.55rem .65rem}.login-form button[type=submit]{color:#fff;background:#1a1a1a;border:none;width:100%;padding:.55rem}.table-scroll{-webkit-overflow-scrolling:touch;border-radius:8px;overflow-x:auto;box-shadow:0 1px 3px rgba(0,0,0,.08)}.table-scroll table{box-shadow:none}.obligation-cards{flex-direction:column;gap:.65rem;display:flex}.obligation-cards-toolbar{justify-content:space-between;align-items:center;display:flex}.obligation-cards-select-all{align-items:center;gap:.5rem;min-height:44px;font-size:.9rem;display:flex}.obligation-card{background:#fff;border-left:5px solid #ccc;border-radius:10px;padding:.75rem;box-shadow:0 1px 3px rgba(0,0,0,.08)}.obligation-card.p-0{border-left-color:#1f8a4c}.obligation-card.p-1{border-left-color:#2a5fbf}.obligation-card.p-2{border-left-color:#c45a1a}.obligation-card.p-3{border-left-color:#7a6b1a}.obligation-card-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.obligation-card-check{align-items:center;gap:.5rem;min-height:44px;display:flex}.obligation-card-id{font-size:.9rem;font-weight:600}.obligation-card-title{flex-direction:column;gap:.15rem;margin-bottom:.35rem;display:flex}.obligation-card-title strong{font-size:1rem;line-height:1.3}.obligation-card-participant{color:#555;margin-bottom:.5rem;font-size:.8rem}.obligation-card-grid{grid-template-columns:1fr 1fr;gap:.5rem .75rem;margin:0;display:grid}.obligation-card-grid dt{color:#888;margin:0;font-size:.72rem}.obligation-card-grid dd{font-variant-numeric:tabular-nums;margin:.1rem 0 0;font-size:.95rem}.obligation-card-overdue{color:#b00020;margin-top:.5rem;font-size:.85rem}.mobile-nav{display:none}.page.has-bulk-bar{padding-bottom:5.5rem}@media (max-width:1100px){.layout{grid-template-columns:1fr}.side{position:static}}@media (max-width:768px){body{padding:.75rem .75rem 1rem;padding-left:max(.75rem,env(safe-area-inset-left));padding-right:max(.75rem,env(safe-area-inset-right))}.page{padding-bottom:calc(4.5rem + env(safe-area-inset-bottom))}.page.has-bulk-bar{padding-bottom:calc(7.5rem + env(safe-area-inset-bottom))}h1{margin-bottom:.75rem;font-size:1.2rem}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-bottom:.85rem}.card{padding:.6rem .75rem}.card strong{font-size:.95rem}.toolbar{flex-direction:column;align-items:stretch;gap:.4rem}.toolbar label,.toolbar button{width:100%}.toolbar select{width:100%;min-height:44px;margin-top:.25rem;font-size:16px;margin-left:0!important}.toolbar button{min-height:44px;font-size:16px}.toolbar-updated{text-align:center;font-size:.78rem}.bulk-bar{left:0;right:0;bottom:calc(3.25rem + env(safe-area-inset-bottom));z-index:90;padding:.65rem max(.75rem,env(safe-area-inset-right)).65rem max(.75rem,env(safe-area-inset-left));border-radius:0;margin:0;position:fixed;box-shadow:0 -2px 12px rgba(0,0,0,.12)}.bulk-bar button,.bulk-bar select{min-height:44px;font-size:16px}.side{box-shadow:none;background:0 0;padding:.5rem 0}.event-list{max-height:none}.status-select{max-width:none;min-height:44px;font-size:16px}.tab{min-height:44px;padding:.45rem .65rem}input[type=checkbox]{width:1.15rem;height:1.15rem}.modal-overlay{align-items:flex-end;padding:0}.modal{max-width:none;max-height:92vh;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));border-radius:14px 14px 0 0}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%;min-height:44px;font-size:16px}.login-page{padding-bottom:env(safe-area-inset-bottom)}.login-form input[type=password],.login-form button[type=submit]{min-height:44px;font-size:16px}.mobile-nav{z-index:100;padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid #e0e0e0;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px rgba(0,0,0,.08)}.mobile-nav-btn{color:#666;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:0;flex:1;min-height:48px;padding:.45rem .2rem;font-size:.68rem;line-height:1.2}.mobile-nav-btn.active{color:#1a1a1a;background:#eef2ff;font-weight:600}}@media (max-width:700px){.table-scroll{margin:0 -.25rem}}
