:root{--clr-raph:#29b6f6;--clr-anja:#7b1fa2;--clr-weekend:#e53935;--clr-school:#fdd835}.year-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem}@media (max-width:1500px){.year-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:1100px){.year-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:768px){.year-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.year-grid{grid-template-columns:1fr}}.month-card{overflow:hidden;border-radius:1rem!important}.month-card .card-header{font-size:1.1rem;font-weight:700;text-align:center}.month-card.past-month{display:none}.month-card.past-month.show-past{display:block}table.calendar{width:100%;border-collapse:collapse;table-layout:fixed;margin:0}table.calendar td{border:1px solid var(--bs-border-color);padding:0;height:26px;vertical-align:middle;font-size:.85rem}td.week{width:28px;text-align:center;background:var(--bs-tertiary-bg);font-weight:700}td.daynum{width:38px;text-align:center;font-weight:700}td.dayname{width:52px;padding-left:6px!important}td.color{width:auto}td.color.raph{background:var(--clr-raph)}td.color.anja{background:var(--clr-anja)}td.color.mix{background:linear-gradient(90deg,var(--clr-raph) 0 50%,var(--clr-anja) 50% 100%)}tr.weekend td.dayname,tr.weekend td.daynum{color:var(--clr-weekend);font-weight:700}tr.holiday td.dayname,tr.holiday td.daynum{color:var(--clr-weekend);font-weight:700;font-style:italic}tr.school-holiday td.dayname,tr.school-holiday td.daynum{background:var(--clr-school)}td.color.clickable{cursor:pointer;position:relative}td.color.clickable:hover{filter:brightness(.85)}td.color:not(.raph):not(.anja):not(.mix).clickable:hover{background:rgba(0,0,0,.06)}.cell-icons{display:flex;gap:1px;align-items:center;justify-content:center;height:100%;font-size:10px;line-height:1;color:#fff}.cell-icons span{position:relative;cursor:help}.cell-icons span::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);background:var(--bs-dark);color:#fff;padding:4px 8px;border-radius:.375rem;font-size:.7rem;white-space:nowrap;z-index:100;pointer-events:none;opacity:0;transition:opacity .15s}.cell-icons span:hover::after{opacity:1}.dot{width:14px;height:14px;border-radius:50%;display:inline-block}.dot-raph{background:var(--clr-raph)}.dot-anja{background:var(--clr-anja)}.dot-weekend{background:var(--clr-weekend)}.dot-school{background:var(--clr-school);border:1px solid #f9a825}tr.today td{background-color:rgba(13,110,253,.06)!important}tr.today td.daynum{position:relative;color:#fff!important;font-weight:900;z-index:0}tr.today td.daynum::after{content:'';position:absolute;inset:2px;background:#0d6efd;border-radius:50%;z-index:-1}tr.today td:first-child{box-shadow:inset 3px 0 0 #0d6efd}tr.today td.color{filter:brightness(1.1)}.stat-value{font-size:1.75rem;font-weight:700}.range-banner{position:fixed;bottom:0;left:0;right:0;background:#0d6efd;color:#fff;padding:.6rem 1rem;z-index:1050;font-size:.9rem;box-shadow:0 -2px 8px rgba(0,0,0,.2)}body.range-mode .year-grid tr{cursor:crosshair}body.range-mode .year-grid tr[data-date]:hover td.dayname,body.range-mode .year-grid tr[data-date]:hover td.daynum{filter:brightness(.88)}tr.range-start td.dayname,tr.range-start td.daynum{background:#0d6efd;color:#fff!important;font-style:normal!important}tr.range-hover td.dayname,tr.range-hover td.daynum{background:#9ec5fe;color:#000!important;font-style:normal!important}@media (max-width:575px){.container-fluid{padding-left:.5rem;padding-right:.5rem}.card-body.p-2{padding:.6rem!important}.stat-value{font-size:1.3rem}}.remark-list{list-style:none;padding:0;margin:.5rem 0 0}.remark-item{padding:.375rem 0;border-bottom:1px solid var(--bs-border-color-translucent);font-size:.85rem}.remark-meta{font-size:.75rem}.cr-item{padding:.5rem;border:1px solid var(--bs-border-color);border-radius:.5rem;margin-bottom:.375rem;font-size:.85rem}.page-header{background:var(--bs-body-bg);border-bottom:1px solid var(--bs-border-color);padding:.55rem 1rem;display:flex;align-items:center;gap:.6rem;flex-shrink:0;min-height:52px;flex-wrap:wrap}.page-title{font-size:1.05rem;font-weight:700;margin:0;display:flex;align-items:center;gap:.45rem;white-space:nowrap}.page-actions{margin-left:auto;display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.hub-card{border-radius:1.5rem!important;padding:2.5rem 2rem;min-height:200px;color:inherit;transition:transform .15s,box-shadow .15s}.hub-card:hover{transform:translateY(-3px);box-shadow:0 .5rem 1.5rem rgba(0,0,0,.12)!important}.hub-card-icon{font-size:3rem;margin-bottom:.85rem}.hub-card-label{font-size:1.3rem;font-weight:700;margin-bottom:.3rem}.dash-section-title{display:flex;align-items:center;gap:.45rem;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--bs-secondary-color);margin-bottom:.85rem}.dash-mini-bar{background:var(--bs-tertiary-bg);border-radius:3px;overflow:hidden;height:6px;align-self:center}.site-nav .navbar-brand{color:var(--bs-body-color)}.site-nav .navbar-brand:hover{color:#0d6efd}.site-nav .nav-link{font-weight:500;color:var(--bs-secondary-color);transition:color .15s;padding-left:.7rem;padding-right:.7rem;position:relative}.site-nav .nav-link:hover{color:var(--bs-body-color)}.site-nav .nav-link.active{color:var(--bs-body-color);font-weight:600}.nav-icon-home{color:#6c757d}.nav-icon-agenda{color:#0d6efd}.nav-icon-comm{color:#6f42c1}.nav-icon-expense{color:#198754}@media (min-width:768px){.site-nav .nav-link.active::after{content:'';position:absolute;bottom:4px;left:.7rem;right:.7rem;height:2px;border-radius:2px;background:currentColor;opacity:.35}}.login-wrapper{display:flex;align-items:center;justify-content:center;min-height:100vh}@media print{@page{size:A4 landscape;margin:10mm}body{background:#fff!important}.no-print{display:none!important}.month-card.past-month{display:block!important}.year-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.month-card{break-inside:avoid;border-radius:.5rem!important;border:1px solid #ccc!important}td.color.raph{background:var(--clr-raph)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}td.color.anja{background:var(--clr-anja)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}td.color.mix{background:linear-gradient(90deg,var(--clr-raph) 0 50%,var(--clr-anja) 50% 100%)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}tr.weekend td.dayname,tr.weekend td.daynum{color:var(--clr-weekend)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}tr.holiday td.dayname,tr.holiday td.daynum{color:var(--clr-weekend)!important;font-style:italic;-webkit-print-color-adjust:exact;print-color-adjust:exact}tr.school-holiday td.dayname,tr.school-holiday td.daynum{background:var(--clr-school)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}table.calendar td{height:20px;font-size:.75rem}.card-header{font-size:.95rem!important;padding:.35rem!important}.row.g-2.mt-3{display:none!important}.d-flex.flex-wrap.gap-2.mt-3{display:none!important}p.text-body-secondary{display:none!important}}body.comm-page{display:flex;flex-direction:column;height:100dvh;overflow:hidden;background:var(--bs-body-bg)}body.comm-page>nav{flex-shrink:0}.comm-header{height:52px;display:flex;align-items:center}.comm-body{display:flex;flex:1;overflow:hidden}.comm-sidebar{width:300px;flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid var(--bs-border-color);overflow:hidden}.comm-sidebar-head{flex-shrink:0}.comm-sidebar-foot{flex-shrink:0}.comm-sidebar-list{flex:1;overflow-y:auto}.topic-item{padding:.65rem .85rem;cursor:pointer;border-bottom:1px solid var(--bs-border-color-translucent);transition:background .1s}.topic-item:hover{background:var(--bs-tertiary-bg)}.topic-item.active{background:#e8f0fe;border-left:3px solid #0d6efd;padding-left:calc(.85rem - 3px)}.topic-item.archived{opacity:.65}.topic-time{font-size:.68rem;color:var(--bs-secondary-color)}.topic-preview{font-size:.78rem;color:var(--bs-secondary-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comm-main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bs-tertiary-bg)}.comm-chat-head{height:52px;display:flex;align-items:center}.comm-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.35rem}.comm-input{padding:.6rem .75rem}.comm-textarea{resize:none;max-height:120px;overflow-y:auto;line-height:1.4}.date-sep{text-align:center;margin:.75rem 0 .4rem;position:relative}.date-sep::before{content:'';position:absolute;top:50%;left:0;right:0;height:1px;background:var(--bs-border-color)}.date-sep span{position:relative;background:var(--bs-tertiary-bg);padding:0 .6rem;font-size:.72rem;color:var(--bs-secondary-color)}.bubble-wrap{display:flex;flex-direction:column;max-width:72%}.bubble-wrap.mine{align-self:flex-end;align-items:flex-end}.bubble-wrap.theirs{align-self:flex-start;align-items:flex-start}.bubble-sender{font-size:.72rem;font-weight:600;color:#6f42c1;margin-bottom:2px;padding:0 .3rem}.bubble{padding:.45rem .75rem;border-radius:1.1rem;font-size:.9rem;line-height:1.45;word-break:break-word;white-space:pre-wrap}.bubble.mine{background:#0d6efd;color:#fff;border-bottom-right-radius:.25rem}.bubble.theirs{background:#fff;color:var(--bs-body-color);border-bottom-left-radius:.25rem;box-shadow:0 1px 2px rgba(0,0,0,.06)}.bubble-meta{font-size:.68rem;color:var(--bs-secondary-color);margin-top:2px;padding:0 .3rem;display:flex;align-items:center;gap:.35rem}.del-msg-btn{background:0 0;border:none;padding:0;cursor:pointer;color:var(--bs-secondary-color);opacity:0;transition:opacity .15s;line-height:1}.bubble-wrap:hover .del-msg-btn{opacity:1}.del-msg-btn:hover{color:var(--bs-danger)}@media (max-width:767.98px){.comm-sidebar{width:100%;border-right:none}body.chat-active .comm-sidebar{display:none}body:not(.chat-active) .comm-main{display:none!important}}body.docs-page{display:flex;flex-direction:column;height:100dvh;overflow:hidden;background:var(--bs-body-secondary-bg)}body.docs-page>nav{flex-shrink:0}body.docs-page>.page-header{flex-shrink:0}.docs-layout{display:flex;flex:1;overflow:hidden;min-height:0}.docs-sidebar{width:240px;flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid var(--bs-border-color);background:var(--bs-body-bg);overflow:hidden}.docs-sidebar-inner{display:flex;flex-direction:column;height:100%;overflow:hidden}.docs-folder-list{flex:1;overflow-y:auto}.docs-folder-item{display:flex;align-items:center;padding:.6rem .9rem;cursor:pointer;border-bottom:1px solid var(--bs-border-color-translucent);transition:background .1s;gap:.25rem;font-size:.875rem;user-select:none}.docs-folder-item:hover{background:var(--bs-tertiary-bg)}.docs-folder-item.active{background:#fff3e0;border-left:3px solid #e67e22;padding-left:calc(.9rem - 3px);font-weight:600}.docs-folder-del{opacity:0;transition:opacity .15s;color:var(--bs-secondary-color)!important;line-height:1}.docs-folder-item:hover .docs-folder-del{opacity:1}.docs-folder-del:hover{color:var(--bs-danger)!important}.docs-main{flex:1;overflow-y:auto;min-width:0}.docs-main-inner{max-width:1200px}.docs-file-list{display:flex;flex-direction:column;gap:0}.docs-file-row{display:flex;align-items:center;gap:.65rem;padding:.6rem .75rem;background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:.5rem;margin-bottom:.35rem;cursor:pointer;transition:box-shadow .12s,background .12s;min-width:0}.docs-file-row:hover{box-shadow:0 2px 8px rgba(0,0,0,.08);background:var(--bs-tertiary-bg)}.docs-file-row--unread{border-left:3px solid #e74c3c}.docs-file-unread-dot{width:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.docs-dot-unread{width:8px;height:8px;border-radius:50%;background:#e74c3c;display:block;flex-shrink:0}.docs-file-icon-col{width:28px;display:flex;align-items:center;justify-content:center}.docs-file-body{min-width:0}.docs-file-name{font-size:.875rem;font-weight:600;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.docs-file-desc{font-size:.75rem;color:var(--bs-secondary-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.docs-file-meta{font-size:.72rem;color:var(--bs-secondary-color);line-height:1.35;min-width:90px}.docs-file-badge{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--bs-secondary-color);background:var(--bs-tertiary-bg);padding:.1rem .35rem;border-radius:.25rem}.docs-file-del{opacity:0;transition:opacity .15s;flex-shrink:0}.docs-file-row:hover .docs-file-del{opacity:1}.docs-unread-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#e74c3c;color:#fff;font-size:.65rem;font-weight:700;line-height:1;flex-shrink:0}.nav-icon-docs{color:#e67e22}@media (max-width:767.98px){.docs-sidebar{width:100%;border-right:none}body.docs-file-active .docs-sidebar{display:none}body:not(.docs-file-active) .docs-main{display:none}.docs-file-del{opacity:1}.docs-folder-del{opacity:1!important}.docs-file-meta{display:none}}