*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:#fafaf9;color:#1c1917;-webkit-font-smoothing:antialiased}body{padding-top:env(safe-area-inset-top);padding-bottom:calc(72px + env(safe-area-inset-bottom))}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}input,select,textarea{outline:none}input:focus,select:focus,textarea:focus{box-shadow:0 0 0 2px #d6d3d1}.nav-bar{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e7e5e4;display:flex;justify-content:space-around;align-items:stretch;padding-bottom:env(safe-area-inset-bottom);z-index:50}.nav-btn{flex:1;padding:12px 4px 10px;display:flex;flex-direction:column;align-items:center;gap:3px;color:#a8a29e;font-size:10px;font-weight:500;position:relative}.nav-btn.active{color:#1c1917}.nav-btn svg{width:22px;height:22px}.nav-badge{position:absolute;top:6px;right:calc(50% - 18px);background:#dc2626;color:#fff;font-size:9px;font-weight:600;border-radius:999px;padding:1px 5px;min-width:14px;text-align:center;line-height:1.4}.page{display:none}.page.active{display:block}header.page-header{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid #e7e5e4;padding-top:env(safe-area-inset-top)}.header-inner{max-width:640px;margin:0 auto;padding:12px 16px}.header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:8px}.title{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600}.title .count{font-size:14px;color:#78716c;font-weight:400}.header-actions{display:flex;align-items:center;gap:4px}.icon-btn{padding:8px;border-radius:8px;color:#57534e;position:relative;display:flex;align-items:center;justify-content:center}.icon-btn:hover{background:#f5f5f4}.add-btn{margin-left:4px;padding:8px 14px;border-radius:8px;background:#1c1917;color:#fff;font-size:14px;font-weight:500;display:flex;align-items:center;gap:4px}.add-btn:hover{background:#292524}.search-row{display:flex;gap:8px}.search-wrap{position:relative;flex:1}.search-wrap svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#a8a29e}.search-input{width:100%;padding:9px 12px 9px 36px;background:#f5f5f4;border:none;border-radius:8px;font-size:14px}.sort-select{padding:9px 10px;background:#f5f5f4;border:none;border-radius:8px;font-size:14px}.chips{display:flex;gap:8px;margin-top:12px;overflow-x:auto;padding-bottom:4px}.chips::-webkit-scrollbar{display:none}.chip{padding:5px 12px;border-radius:999px;font-size:12px;font-weight:500;background:#f5f5f4;color:#57534e;white-space:nowrap;flex-shrink:0}.chip.active{background:#1c1917;color:#fff}main{max-width:640px;margin:0 auto;padding:16px 16px 20px}.empty{text-align:center;padding:64px 16px;color:#78716c}.empty svg{color:#d6d3d1;margin:0 auto 12px;display:block}.empty .big{font-weight:500;margin-bottom:4px}.empty .small{font-size:14px}.contact-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.contact-card{background:#fff;border:1px solid #e7e5e4;border-radius:12px;padding:12px;cursor:pointer;transition:border-color .1s;display:flex;align-items:flex-start;gap:12px}.contact-card:hover{border-color:#d6d3d1}.contact-card:active{background:#fafaf9}.contact-card.fav{border-color:#fbbf24;background:#fffbeb}.avatar{width:40px;height:40px;border-radius:50%;background:#f5f5f4;color:#57534e;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500;flex-shrink:0}.contact-body{flex:1;min-width:0}.contact-row1{display:flex;align-items:center;justify-content:space-between;gap:8px}.contact-name-wrap{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.contact-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.star-icon{color:#f59e0b;flex-shrink:0}.contact-type{font-size:11px;padding:2px 8px;border-radius:999px;background:#f5f5f4;color:#57534e;flex-shrink:0}.contact-sub{font-size:14px;color:#57534e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-meta{display:flex;gap:12px;align-items:center;margin-top:2px;flex-wrap:wrap}.contact-loc{font-size:12px;color:#78716c;display:flex;align-items:center;gap:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-link{font-size:12px;color:#0369a1;display:flex;align-items:center;gap:4px;text-decoration:none;flex-shrink:0}.contact-link:hover{text-decoration:underline}.contact-date{font-size:12px;color:#a8a29e;flex-shrink:0}.banner{max-width:640px;margin:12px auto 0;padding:0 16px}.banner-inner{display:flex;align-items:flex-start;justify-content:space-between;padding:12px;border-radius:8px;font-size:14px;white-space:pre-line}.banner.ok .banner-inner{background:#dcfce7;color:#166534}.banner.err .banner-inner{background:#fee2e2;color:#991b1b}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0006;display:flex;align-items:flex-end;justify-content:center}@media (min-width: 640px){.modal-bg{align-items:center}}.modal{background:#fff;width:100%;max-width:560px;border-radius:16px 16px 0 0;max-height:92vh;overflow-y:auto;padding-bottom:env(safe-area-inset-bottom)}@media (min-width: 640px){.modal{border-radius:16px}}.modal-header{position:sticky;top:0;background:#fff;z-index:1;border-bottom:1px solid #e7e5e4;padding:12px 16px;display:flex;align-items:center;justify-content:space-between}.modal-header h2{margin:0;font-size:16px}.modal-header button{font-size:14px;padding:4px 8px}.modal-cancel{color:#57534e}.modal-save{color:#1c1917;font-weight:600}.modal-body{padding:16px;display:flex;flex-direction:column;gap:12px}.field label{display:block;font-size:11px;font-weight:500;color:#78716c;margin-bottom:4px;text-transform:none}.field input,.field textarea,.field select{width:100%;padding:9px 12px;background:#fafaf9;border:1px solid #e7e5e4;border-radius:8px;font-size:14px}.field textarea{resize:vertical;min-height:70px;font-family:inherit}.action-row{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap}.action-btn{flex:1;min-width:0;padding:10px 6px;border-radius:8px;border:1px solid #e7e5e4;background:#fff;display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;font-weight:500;color:#57534e}.action-btn:hover{background:#f5f5f4}.action-btn.fav-active{background:#fef3c7;border-color:#fbbf24;color:#92400e}.action-btn.contacted-recent{background:#dcfce7;border-color:#86efac;color:#166534}.action-btn.tracking-active{background:#dbeafe;border-color:#93c5fd;color:#1e40af}.delete-btn{margin-top:8px;width:100%;padding:10px;border:1px solid #fecaca;border-radius:8px;color:#dc2626;display:flex;align-items:center;justify-content:center;gap:8px;background:#fff;font-size:14px}.delete-btn:hover{background:#fef2f2}.last-contacted-info{font-size:12px;color:#78716c;padding:8px 12px;background:#fafaf9;border-radius:8px;text-align:center}.tabs{display:flex;gap:0;margin:0 -16px 12px;padding:0 16px;border-bottom:1px solid #e7e5e4;background:#fff}.tab-btn{flex:1;padding:12px 8px;font-size:14px;font-weight:500;color:#78716c;border-bottom:2px solid transparent;margin-bottom:-1px}.tab-btn.active{color:#1c1917;border-bottom-color:#1c1917}.tab-content{display:none}.tab-content.active{display:block}.section-header{font-size:11px;font-weight:600;color:#78716c;text-transform:uppercase;letter-spacing:.5px;margin:16px 0 8px;padding-top:12px;border-top:1px solid #e7e5e4}.section-header:first-of-type{border-top:none;padding-top:0}.timeline{display:flex;flex-direction:column;gap:8px}.timeline-item{background:#fafaf9;border:1px solid #e7e5e4;border-radius:8px;padding:10px 12px;font-size:13px}.timeline-item.meeting{background:#eff6ff;border-color:#bfdbfe}.timeline-row1{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px}.timeline-kind{font-weight:600;color:#1c1917;font-size:12px}.timeline-date{color:#78716c;font-size:12px;flex-shrink:0}.timeline-note{color:#57534e}.timeline-delete{margin-top:6px;font-size:11px;color:#dc2626}.add-interaction-btn{width:100%;padding:10px;border:1px dashed #d6d3d1;border-radius:8px;color:#57534e;font-size:13px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:6px}.add-interaction-btn:hover{background:#f5f5f4;border-color:#a8a29e}.qr-container{display:flex;flex-direction:column;align-items:center;padding:24px 16px;gap:16px}.qr-canvas-wrap{background:#fff;padding:16px;border-radius:12px;border:1px solid #e7e5e4}.qr-url{font-size:12px;color:#57534e;word-break:break-all;background:#f5f5f4;padding:8px 12px;border-radius:6px;width:100%;text-align:center;font-family:monospace}.qr-instructions{font-size:14px;color:#57534e;text-align:center;max-width:320px}.qr-copy-btn{padding:8px 16px;background:#1c1917;color:#fff;border-radius:8px;font-size:13px;font-weight:500}.pending-item{background:#fff;border:1px solid #e7e5e4;border-radius:12px;padding:12px;margin-bottom:8px}.pending-name{font-weight:500;margin-bottom:4px}.pending-meta{font-size:13px;color:#57534e;margin-bottom:4px}.pending-actions{display:flex;gap:8px;margin-top:8px}.approve-btn{flex:1;padding:8px;background:#1c1917;color:#fff;border-radius:6px;font-size:13px;font-weight:500}.reject-btn{flex:1;padding:8px;background:#fff;color:#dc2626;border:1px solid #fecaca;border-radius:6px;font-size:13px;font-weight:500}.mention-dropdown{position:absolute;background:#fff;border:1px solid #e7e5e4;border-radius:8px;box-shadow:0 4px 12px #0000001a;max-height:160px;overflow-y:auto;z-index:120;width:250px}.mention-item{padding:8px 10px;cursor:pointer;font-size:13px}.mention-item:hover{background:#f5f5f4}.mention-tag{background:#dbeafe;color:#1e40af;padding:1px 4px;border-radius:3px;font-weight:500}.tagged-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.tagged-chip{font-size:11px;padding:2px 8px;background:#dbeafe;color:#1e40af;border-radius:999px;display:inline-flex;align-items:center;gap:4px}.tagged-chip button{color:#1e40af;font-size:12px;padding:0}.timeline-source{font-size:11px;color:#0369a1;font-style:italic}.drag-handle{cursor:grab;color:#a8a29e;font-size:16px;padding:2px 4px;touch-action:none;-webkit-user-select:none;user-select:none;flex-shrink:0}.drag-handle:active{cursor:grabbing}.tpl-item{transition:background .1s}.tpl-item.drag-over{background:#dbeafe;border-radius:4px}.sync-indicator{position:fixed;bottom:88px;left:50%;transform:translate(-50%);background:#1c1917;color:#fff;padding:8px 16px;border-radius:999px;font-size:12px;opacity:0;transition:opacity .2s;z-index:60;pointer-events:none}.sync-indicator.show{opacity:1}.tracking-table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;border:1px solid #e7e5e4}.tracking-table th,.tracking-table td{padding:10px 12px;text-align:left;font-size:13px;border-bottom:1px solid #f5f5f4}.tracking-table th{background:#fafaf9;font-weight:600;color:#78716c;font-size:11px;text-transform:uppercase;letter-spacing:.5px}.tracking-table tr:last-child td{border-bottom:none}.tracking-table tr.row-clickable{cursor:pointer}.tracking-table tr.row-clickable:hover{background:#fafaf9}.tracking-table .name-cell{font-weight:500}.tracking-table .reason-cell,.tracking-table .status-cell{color:#57534e;max-width:180px;word-wrap:break-word}@media (max-width: 540px){.tracking-table th,.tracking-table td{padding:8px;font-size:12px}}.cal-month-nav{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;max-width:640px;margin:0 auto}.cal-month-nav button{padding:8px 12px;border-radius:6px;color:#57534e}.cal-month-nav button:hover{background:#f5f5f4}.cal-month-title{font-size:16px;font-weight:600}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;max-width:640px;margin:0 auto;padding:0 16px}.cal-dow{text-align:center;font-size:11px;font-weight:600;color:#78716c;padding:4px 0;text-transform:uppercase}.cal-cell{aspect-ratio:1;background:#fff;border:1px solid #e7e5e4;border-radius:8px;padding:4px;display:flex;flex-direction:column;align-items:stretch;cursor:pointer;position:relative;min-height:50px}.cal-cell:hover{border-color:#d6d3d1}.cal-cell.other-month{background:#fafaf9;color:#a8a29e}.cal-cell.today{border-color:#6366f1;border-width:2px}.cal-cell.today .cal-day-num{color:#6366f1;font-weight:700}.cal-cell.has-meetings{background:#eff6ff;border-color:#bfdbfe}.cal-cell.selected{background:#1c1917;color:#fff;border-color:#1c1917}.cal-cell.today.selected{background:#6366f1;color:#fff;border-color:#6366f1}.cal-day-num{font-size:13px;font-weight:500}.cal-meeting-dot{width:5px;height:5px;border-radius:50%;background:#2563eb;margin:2px auto 0}.cal-cell.selected .cal-meeting-dot{background:#fff}.cal-meeting-count{font-size:9px;color:#2563eb;font-weight:600;margin-top:auto}.cal-cell.selected .cal-meeting-count{color:#fff}.day-meetings{max-width:640px;margin:16px auto 0;padding:0 16px}.day-meetings h3{font-size:14px;margin:0 0 8px;color:#57534e}.meeting-card{background:#fff;border:1px solid #e7e5e4;border-radius:10px;padding:12px;margin-bottom:8px;cursor:pointer}.meeting-card:hover{border-color:#d6d3d1}.meeting-title{font-weight:600;margin-bottom:4px}.meeting-time,.meeting-location{font-size:12px;color:#78716c;margin-bottom:4px}.meeting-attendees{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.attendee-chip{font-size:13px;padding:6px 14px;background:#f5f5f4;border-radius:999px;color:#1c1917;cursor:pointer;transition:background .1s;font-weight:500;display:inline-block;min-height:32px;line-height:20px}.attendee-chip:hover{background:#e7e5e4}.attendee-chip:active{background:#d6d3d1}.attendee-picker{border:1px solid #e7e5e4;border-radius:8px;padding:8px;background:#fafaf9}.attendee-picker input{width:100%;padding:6px 10px;border:1px solid #e7e5e4;border-radius:6px;background:#fff;font-size:13px;margin-bottom:6px}.attendee-results{overflow-y:auto;max-height:140px}.attendee-results:empty{display:none}.attendee-result{padding:6px 8px;cursor:pointer;font-size:13px;border-radius:4px}.attendee-result:hover{background:#f5f5f4}.selected-attendees{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px;padding-top:8px;border-top:1px solid #e7e5e4;min-height:20px}.selected-attendees:empty{display:none}.selected-chip{font-size:12px;padding:4px 10px;background:#1c1917;color:#fff;border-radius:999px;display:inline-flex;align-items:center;gap:6px}.selected-chip button{color:#fff;font-size:14px;padding:0;line-height:1}.submit-page{max-width:480px;margin:0 auto;padding:32px 20px}.submit-page h1{font-size:24px;margin:0 0 8px;text-align:center}.submit-page .subtitle{text-align:center;color:#78716c;margin-bottom:24px;font-size:15px}.submit-page .field{margin-bottom:14px}.submit-page button.submit{width:100%;padding:14px;background:#1c1917;color:#fff;border-radius:10px;font-size:16px;font-weight:600;margin-top:8px}.submit-page .success{text-align:center;padding:48px 20px}.submit-page .success svg{color:#16a34a;margin:0 auto 16px;display:block}.submit-page .success h2{margin:0 0 8px}.submit-page .success p{color:#78716c;margin:0}
