html{background:#f6f7f9}:root{color:#1d242d;font-synthesis:none;text-rendering:optimizelegibility;background:#f6f7f9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{width:100%;max-width:100%;margin:0}body{min-height:100vh;overflow-x:hidden}img,svg,video,canvas{max-width:100%;height:auto}a{color:inherit;overflow-wrap:anywhere;word-break:break-word;text-decoration:none}button,input,select,textarea{font:inherit;max-width:100%}button{color:#fff;cursor:pointer;background:#2366d1;border:0;border-radius:6px;padding:.78rem 1rem;font-weight:700}button:disabled{cursor:not-allowed;opacity:.55}input,select,textarea{color:#1d242d;background:#fff;border:1px solid #cbd3df;border-radius:6px;width:100%;margin-top:.4rem;padding:.72rem .8rem;font-size:16px}textarea{resize:vertical}label{color:#344052;font-size:.9rem;font-weight:700;display:block}.center-screen,.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-panel{background:#fff;border:1px solid #dfe4ec;border-radius:8px;gap:1.1rem;width:100%;max-width:420px;padding:2rem;display:grid;box-shadow:0 16px 40px #1f2d3d14}.auth-panel h1,.page-heading h1,.project-summary h1{overflow-wrap:anywhere;word-break:break-word;min-width:0;margin:0}.eyebrow{color:#647084;letter-spacing:0;overflow-wrap:anywhere;text-transform:uppercase;word-break:break-word;margin:0 0 .35rem;font-size:.76rem;font-weight:800}.app-shell{min-width:0;min-height:100vh}.topbar{background:#fff;border-bottom:1px solid #dfe4ec;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;width:100%;min-height:64px;padding:0 1.5rem;display:flex}.brand{min-width:0;font-weight:800}.account-area{color:#566276;flex-wrap:wrap;align-items:center;gap:.85rem;min-width:0;display:flex}.account-area span{overflow-wrap:anywhere}.secondary-button{color:#253246;background:#eef2f7}.notranslate{overflow-wrap:anywhere;word-break:break-word}.password-change-panel{background:#fff;border-bottom:1px solid #dfe4ec;padding:1rem 1.5rem}.password-change-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:.85rem;max-width:1080px;margin:0 auto;display:grid}.password-change-form label,.announcement-form label,.project-create-form label,.project-edit-form label,.member-add-form label,.comment-form label{min-width:0}.password-message,.password-actions{grid-column:1/-1}.password-actions{flex-wrap:wrap;gap:.75rem;display:flex}.page{width:min(100% - 3rem,1080px);max-width:none;margin:0 auto;padding:2rem 0 4rem}.page-heading{justify-content:space-between;align-items:end;gap:1rem;min-width:0;margin-bottom:1.25rem;display:flex}.project-list{gap:.75rem;min-width:0;display:grid}.announcements-panel{background:#fff;border:1px solid #dfe4ec;border-radius:8px;gap:1rem;min-width:0;max-width:100%;margin-bottom:1.25rem;padding:1.25rem;display:grid}.announcements-title{margin-bottom:0}.announcements-title .muted{margin:.35rem 0 0}.announcement-admin-actions,.announcement-form-actions,.announcement-admin-row-actions{flex-wrap:wrap;gap:.75rem;display:flex}.announcement-list{gap:.75rem;min-width:0;display:grid}.announcement-card{border:1px solid #dfe4ec;border-radius:8px;gap:.7rem;min-width:0;padding:1rem;display:grid}.announcement-important{border-color:#d29312;box-shadow:0 0 0 1px #d2931240}.announcement-urgent{border-color:#b32626;box-shadow:0 0 0 1px #b3262659}.announcement-header{flex-wrap:wrap;align-items:center;gap:.65rem;min-width:0;display:flex}.announcement-header h3{overflow-wrap:anywhere;word-break:break-word;min-width:0;margin:0;font-size:1rem}.announcement-priority{border-radius:999px;padding:.32rem .55rem;font-size:.75rem;font-weight:800;line-height:1;display:inline-flex}.announcement-priority-normal{color:#566276;background:#eef2f7}.announcement-priority-important{color:#8a5a00;background:#fff4d9}.announcement-priority-urgent{color:#b32626;background:#ffe9e9}.announcement-body{overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word;margin:0}.announcement-body a{color:#2458b8;overflow-wrap:anywhere;text-underline-offset:2px;word-break:break-word;font-weight:700;text-decoration:underline}.announcement-date{color:#647084;margin:0;font-size:.86rem}.announcement-show-all{justify-self:start}.announcement-form{border-top:1px solid #dfe4ec;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;min-width:0;padding-top:1rem;display:grid}.announcement-form label:first-child,.announcement-form label:nth-child(2){grid-column:1/-1}.checkbox-label{align-items:center;gap:.55rem;display:flex}.checkbox-label input{width:auto;margin:0}.announcement-form-actions{align-self:end}.announcement-admin-list{border-top:1px solid #dfe4ec;gap:.75rem;min-width:0;padding-top:1rem;display:grid}.announcement-admin-list h3{margin:0}.announcement-admin-row{border-bottom:1px solid #e8edf4;justify-content:space-between;align-items:center;gap:1rem;min-width:0;padding:.75rem 0;display:flex}.announcement-admin-row>div:first-child{gap:.25rem;min-width:0;display:grid}.announcement-admin-row span{color:#647084;font-size:.86rem}.project-create-panel{background:#fff;border:1px solid #dfe4ec;border-radius:8px;gap:1rem;min-width:0;max-width:100%;margin-bottom:1.25rem;padding:1.25rem;display:grid}.project-create-toggle{justify-self:start}.project-create-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;min-width:0;display:grid}.project-create-form label:nth-child(2),.project-create-form label:nth-child(6),.project-create-form label:nth-child(7){grid-column:1/-1}.project-create-form button{align-self:end}.project-row{background:#fff;border:1px solid #dfe4ec;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;min-width:0;max-width:100%;padding:1rem;display:flex}.project-row>div{min-width:0}.project-row:hover{border-color:#9eb7e7}.project-row.unread{border-color:#2458b8;box-shadow:0 0 0 1px #2458b8}.text-link{color:#2458b8;font-weight:800}.project-title-line{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.project-title-line h2{overflow-wrap:anywhere;word-break:break-word;min-width:0;margin:0;font-size:1.05rem}.project-row p{color:#647084;overflow-wrap:anywhere;word-break:break-word;margin:.4rem 0 0}.project-comment-summary{color:#647084;flex-wrap:wrap;gap:.45rem .75rem;min-width:0;margin-top:.55rem;font-size:.86rem;display:flex}.project-code{color:#2458b8;background:#edf3ff;border-radius:5px;padding:.25rem .45rem;font-size:.78rem;font-weight:800}.unread-badge{color:#fff;background:#2458b8;border-radius:999px;padding:.32rem .55rem;font-size:.75rem;font-weight:800;line-height:1;display:inline-flex}.project-meta{color:#647084;text-align:right;flex-direction:column;align-items:end;gap:.4rem;min-width:0;display:flex}.status,.message-type{border-radius:999px;padding:.34rem .55rem;font-size:.78rem;font-weight:800;line-height:1;display:inline-flex}.status{color:#2458b8;background:#edf3ff}.back-link{color:#2458b8;margin-bottom:1rem;font-weight:800;display:inline-flex}.detail-page{gap:1rem;min-width:0;display:grid}.project-summary,.comments-area,.members-panel,.project-edit-panel{background:#fff;border:1px solid #dfe4ec;border-radius:8px;min-width:0;max-width:100%;padding:1.25rem}.project-summary,.project-edit-panel{gap:1rem;display:grid}.admin-actions{flex-wrap:wrap;gap:.75rem;display:flex}.danger-button{background:#b32626}.project-edit-form{border-top:1px solid #dfe4ec;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;min-width:0;padding-top:1rem;display:grid}.project-edit-form label:nth-child(3),.project-edit-form label:nth-child(4){grid-column:1/-1}.project-edit-form button{align-self:end}.project-summary p{color:#647084;overflow-wrap:anywhere;word-break:break-word;margin:.4rem 0 0}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;min-width:0;display:grid}.summary-grid div{background:#f6f7f9;border-radius:6px;min-width:0;padding:.8rem}.summary-grid span{color:#647084;margin-bottom:.3rem;font-size:.8rem;display:block}.summary-grid strong{overflow-wrap:anywhere;word-break:break-word}.link-list{flex-wrap:wrap;gap:.7rem;min-width:0;display:flex}.link-list a{color:#2458b8;font-weight:800}.section-title{justify-content:space-between;align-items:center;gap:1rem;min-width:0;margin-bottom:1rem;display:flex}.section-title h2{margin:0;font-size:1.1rem}.section-title span,.muted{color:#647084}.timeline{gap:.8rem;min-width:0;display:grid}.member-list{gap:.6rem;min-width:0;display:grid}.member-row{border-bottom:1px solid #e8edf4;justify-content:space-between;align-items:center;gap:.75rem;min-width:0;padding:.65rem 0;display:flex}.member-row>div{flex-wrap:wrap;align-items:center;gap:.55rem;min-width:0;display:flex}.member-row strong{overflow-wrap:anywhere;word-break:break-word}.member-row span{color:#566276;background:#eef2f7;border-radius:999px;padding:.34rem .55rem;font-size:.78rem;font-weight:800}.member-delete-button{padding:.52rem .75rem}.member-add-form{border-top:1px solid #dfe4ec;grid-template-columns:minmax(0,1fr) minmax(180px,240px) auto;gap:.9rem;min-width:0;margin-top:1rem;padding-top:1rem;display:grid}.member-add-form .error-message{grid-column:1/-1}.comment-item{border-bottom:1px solid #e8edf4;min-width:0;padding-bottom:.8rem}.comment-item p{margin:.65rem 0 0}.comment-body{overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word}.comment-body a{color:#2458b8;overflow-wrap:anywhere;text-underline-offset:2px;word-break:break-word;font-weight:700;text-decoration:underline}.comment-image-link{max-width:min(100%,560px);margin-top:.8rem;display:block}.comment-image{object-fit:contain;background:#f6f7f9;border:1px solid #dfe4ec;border-radius:6px;width:auto;max-width:100%;height:auto;max-height:440px;display:block}.comment-file-link{color:#253246;background:#f6f8fb;border:1px solid #d4dceb;border-radius:6px;flex-wrap:wrap;align-items:center;gap:.55rem;min-width:0;max-width:100%;margin-top:.8rem;padding:.75rem .85rem;display:flex}.comment-file-link:hover{border-color:#2458b8}.comment-file-type{color:#fff;background:#2458b8;border-radius:999px;flex:none;padding:.3rem .52rem;font-size:.78rem;font-weight:800}.comment-file-name{overflow-wrap:anywhere;word-break:break-word;flex:180px;min-width:0;font-weight:800}.comment-file-size{color:#647084;flex:none;font-size:.82rem}.comment-reactions{gap:.55rem;min-width:0;margin-top:.75rem;display:grid}.reaction-summary,.reaction-menu{flex-wrap:wrap;gap:.45rem;min-width:0;display:flex}.reaction-pill,.reaction-add-button,.reaction-option{color:#253246;background:#f6f8fb;border:1px solid #d4dceb;align-items:center;gap:.28rem;line-height:1;display:inline-flex}.reaction-pill,.reaction-add-button{border-radius:999px;padding:.38rem .62rem;font-size:.84rem}.reaction-pill-active,.reaction-option-active{color:#163f88;background:#dceaff;border-color:#2458b8}.reaction-add-button{justify-content:center;min-width:2.1rem;font-weight:900}.reaction-menu{background:#fff;border:1px solid #dfe4ec;border-radius:8px;max-width:100%;padding:.65rem;box-shadow:0 10px 28px #1f2d3d14}.reaction-option{border-radius:999px;padding:.5rem .7rem;font-size:.86rem}.attachment-loading,.attachment-load-error{margin:.65rem 0 0;font-size:.86rem}.attachment-load-error{color:#9f1d1d}.edited-label{color:#6b7280;margin-top:.35rem;font-size:.78rem;display:inline-block}.emoji{vertical-align:-.08em;font-size:1.05em;line-height:1;display:inline-block}.comment-header{flex-wrap:wrap;align-items:center;gap:.55rem;min-width:0;display:flex}.comment-header time{color:#647084;font-size:.82rem}.comment-edit-button{margin-left:auto;padding:.42rem .7rem}.comment-edit-form{gap:.85rem;min-width:0;margin-top:.85rem;display:grid}.comment-edit-form label{min-width:0}.comment-edit-actions{flex-wrap:wrap;gap:.75rem;display:flex}.message-type-instruction{color:#2458b8;background:#e9f1ff}.message-type-question{color:#8a5a00;background:#fff4d9}.message-type-answer{color:#207343;background:#e8f8ee}.message-type-revision{color:#b32626;background:#ffe9e9}.message-type-due_date_change{color:#6642a6;background:#f1eaff}.message-type-delivery_report{color:#147070;background:#e7f7f7}.message-type-memo{color:#566276;background:#eef2f7}.comment-form{border-top:1px solid #dfe4ec;gap:.9rem;min-width:0;margin-top:1rem;padding-top:1rem;display:grid}.comment-attachment{background:#f6f7f9;border:1px solid #dfe4ec;border-radius:6px;gap:.8rem;min-width:0;padding:.9rem;display:grid}.attachment-warning{color:#9f1d1d;margin:0;font-size:.86rem;font-weight:700}.attachment-help{margin:0;font-size:.84rem}.selected-image-preview{gap:.75rem;min-width:0;display:grid}.selected-image-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;min-width:0;display:flex}.selected-image-header span{overflow-wrap:anywhere;word-break:break-word;min-width:0}.selected-image-header button{flex:none}.selected-image-preview img{object-fit:contain;background:#fff;border:1px solid #dfe4ec;border-radius:6px;max-width:100%;height:auto;max-height:360px;display:block}.selected-file-preview{background:#fff;border:1px solid #dfe4ec;border-radius:6px;flex-wrap:wrap;align-items:center;gap:.55rem;min-width:0;padding:.75rem;display:flex}.selected-file-preview span{color:#253246;background:#eef2f7;border-radius:999px;flex:none;padding:.3rem .52rem;font-size:.78rem;font-weight:800}.selected-file-preview strong{overflow-wrap:anywhere;word-break:break-word;min-width:0}.error-message{color:#9f1d1d;background:#fff0f0;border:1px solid #ffc9c9;border-radius:6px;margin:0;padding:.75rem .9rem}.success-message{color:#207343;background:#e8f8ee;border:1px solid #bfe8cd;border-radius:6px;margin:0;padding:.75rem .9rem}.comment-notification{color:#1d3f82;text-align:left;background:#edf3ff;border:1px solid #2458b8;place-items:flex-start start;gap:.25rem;width:100%;margin:0 0 1rem;display:grid}.comment-notification span{font-size:.88rem;font-weight:600}.jump-to-latest-button{bottom:max(1rem, env(safe-area-inset-bottom));z-index:30;border-radius:999px;position:fixed;right:1rem;box-shadow:0 4px 14px #0000002e}.error-message dl{gap:.45rem;margin:0;display:grid}.error-message div{gap:.15rem;display:grid}.error-message dt{color:#647084;font-size:.74rem;font-weight:800}.error-message dd{overflow-wrap:anywhere;margin:0}@media (width<=720px){.topbar,.project-row,.account-area{flex-direction:column;align-items:stretch}.topbar{padding:1rem}.page{width:min(100% - 1rem,1080px);padding:1.25rem 0 3rem}.account-area{gap:.6rem;width:100%}.account-area button,.password-actions button,.announcement-admin-actions button,.announcement-form-actions button,.announcement-admin-row-actions button,.announcement-show-all,.admin-actions button,.comment-form button,.comment-edit-actions button,.comment-edit-button,.project-create-form button,.project-edit-form button,.member-add-form button,.member-delete-button{width:100%}.page-heading,.section-title{flex-direction:column;align-items:stretch}.project-meta{text-align:left;align-items:start}.summary-grid,.project-create-form,.project-edit-form,.password-change-form,.announcement-form{grid-template-columns:1fr}.announcement-form label:first-child,.announcement-form label:nth-child(2),.project-create-form label:nth-child(2),.project-create-form label:nth-child(6),.project-create-form label:nth-child(7),.project-edit-form label:nth-child(3),.project-edit-form label:nth-child(4){grid-column:auto}.member-row,.member-add-form{grid-template-columns:1fr;align-items:stretch}.member-row{flex-direction:column}.announcement-admin-row,.selected-image-header{flex-direction:column;align-items:stretch}.comment-image,.selected-image-preview img{width:100%}.jump-to-latest-button{bottom:calc(max(1rem, env(safe-area-inset-bottom)) + .5rem);width:auto;left:1rem;right:1rem}}
